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_()
# 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才是程序的主窗體。
全站熱搜