无法在 PyQt4 上显示 Qlabel

Not able to display Qlabel on PyQt4

您好,我已经发布了下面的代码,通过它我无法在 pyqt4 中显示标签。任何建议都会有所帮助。

from PyQt4 import QtGui
from PyQt4 import QtCore
import sys

class Entry_view(QtGui.QWidget):
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.setGeometry(25, 25, 800, 480)

        label = QtGui.QLabel()
        label.setText("Welcome To Python GUI")
        label.resize(100, 50)
        # label.show(self)
        self.show()


if __name__ == '__main__':
app     = QtGui.QApplication(sys.argv)
myapp = Entry_view()
sys.exit(app.exec_())

您没有保留对标签的引用,因此它在显示之前已被垃圾回收。试试这个:

self.label = QtGui.QLabel(self)
self.label.setText("Welcome To Python GUI")
self.label.resize(100, 50)

下面的代码是解决方案,

from PyQt4 import QtGui
from PyQt4 import QtCore
import sys

class Entry_view(QtGui.QWidget):
def __init__(self, parent=None):
    QtGui.QWidget.__init__(self, parent)
    self.setGeometry(25, 25, 800, 480)

    label = QtGui.QLabel()
    label.setText("Swipe The Card")
    vbox = QtGui.QVBoxLayout()
    label.setAlignment(Qt.AlignCenter)
    vbox.addWidget(label)
    vbox.addStretch()
    self.setLayout(vbox)

if __name__ == '__main__':
app     = QtGui.QApplication(sys.argv)
myapp = Entry_view()
sys.exit(app.exec_())

为什么你设置了文本但不使用这样处理应用程序:

app.processEvents() # On the QApplication.

或者只是做:

label = QtGui.QLabel(text="Welcome to Python GUI!")

或者:

label = QtGui.QLabel("Welcomme To Python GUI!")

或者另一种方式是:

label.show() # No widgets on it.