PySide教程:Close
这个例子不会花费你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才是程序的主窗体。