首页>
知识库>
详情

PySide教程:Close

2020-07-23 来源:CloudBest 阅读量: 0
关键词:

    这个例子不会花费你5分钟。这个小程序的意义在于使用pushButton把程序关闭。通常,我们首先使用Qt Designer,创建了一个主窗体中只含有一个按钮的quitter.ui。你可以从下面附件中下载  quitter.ui。为了方便,我们同时也提供了quitter.py的源代码。
    下载完以后,我们把ui文件转换为可读的Python代码。
    pyside-uic quitter.ui -o ui_quitter.py
    ui_quitter.py中包含可读的Python代码。文件名只需要记住 quitter. 剩下的部分则是帮助认出这个文件的来源。
    下面将列出代码
    #!/usr/bin/env python
    # quitter.py - provide a button to quit this "program"
    import sys
    from PySide.QtGui import QMainWindow, QPushButton, QApplication
    from ui_quitter import Ui_MainWindow
    class MainWindow(QMainWindow, Ui_MainWindow):
    def __init__(self, parent=None):
    super(MainWindow, self)。__init__(parent)
    self.setupUi(self)
    if __name__ == '__main__':
    app = QApplication(sys.argv)
    frame = MainWindow()
    frame.show()
    app.exec_()
    如果你运行这个代码,你能发现既可以像以前那样点击 [X] 按钮,也可以点击pushButton.
    让我们看看程序代码,其中中找不到让按钮关闭程序的部分。找不到的原因是这样的功能是在Qt Desinger中实现的,Qt Desinger中能够编辑 信号-槽。我们悄悄地将 PushButton.click()信号 与  MainWindow.close()槽连接起来了。它隐藏在 quitter.ui文件和ui_quitter.py中。在这两个文件里,我们引用了 Ui_MainWindow类,它是我们MainWindow类的父类。Python的多重继承功能方便我们使用 ui_quitter.py模块的方法。
    你可能已经注意到 init()函数 指定所有者为None.这能告诉PySide MainWindow才是程序的主窗体。