在用户定义的槽中创建小部件

时间:2013-01-29 04:48:21

标签: python qt pyqt signals signals-slots

我正在构建一个简单的应用程序,其中有一个按钮,单击时会打印hello。

#!/usr/bin/python
# -*- coding: utf-8 -*-

import sys
from PyQt4 import QtGui, QtCore

class Example(QtGui.QMainWindow):
    def __init__(self):
        super(Example, self).__init__();
        self.initUI()


    def initUI(self):
        self.button = QtGui.QPushButton("print hello",self)
        self.button.clicked.connect(self.print_hello)

    def print_hello(self):
        self.button.deleteLater()
        self.label = QtGui.QLabel("hello",self)



def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    ex.show()
    sys.exit(app.exec_())

if __name__=='__main__':
    main()

现在,插槽print_hello()不输出标签“hello”
为什么会这样?

1 个答案:

答案 0 :(得分:2)

标签未显示,因为虽然您已创建它,但您还没有告诉GUI显示它。例如,您可能希望在决定显示之前在后台标签上执行其他操作。

self.label.show()添加到print_hello()会使其可见。