Python pyQt4學習筆記2
例子:狀態欄、菜單欄和工具欄
import sys from PyQt4 import QtGui class Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() self.initUI() def initUI(self): textEdit = QtGui.QTextEdit() self.setCentralWidget(textEdit) exitAction= QtGui.QAction(QtGui.QIcon(), ‘Exit‘, self) exitAction.setShortcut(‘Ctrl+Q‘) exitAction.setStatusTip(‘Exit application‘) exitAction.triggered.connect(self.close) bar1=self.statusBar()
bar1.showMessage(‘Ready‘) menubar = self.menuBar() fileMenu= menubar.addMenu(‘&File‘) fileMenu.addAction(exitAction) toolbar = self.addToolBar(‘Exit‘) toolbar.addAction(exitAction) self.setGeometry(300, 300, 350, 250) self.setWindowTitle(‘Main window‘) self.show() def main(): app = QtGui.QApplication(sys.argv) ex= Example() sys.exit(app.exec_()) if __name__ == ‘__main__‘: main()
運行效果如下:
下面解釋上面的代碼:
class Example(QtGui.QMainWindow): def __init__(self): super(Example, self).__init__() self.initUI()
註意Example類繼承於QtGui.QMainWindow
QtGui.QMainWindow類提供了創建應用主窗口的方法,這使得用狀態欄(statusbar)、菜單欄(menubar)、工具欄(toolbar)創建一個傳統的應用框架成為可能。
textEdit = QtGui.QTextEdit()
self.setCentralWidget(textEdit)
這裏我們創建了一個文本編輯框(text edit)部件。我們把它設置成QtGui.QMainWindow的中央部件,中央部件占據了各種欄之外所有的剩余空間
exitAction = QtGui.QAction(QtGui.QIcon(), ‘Exit‘, self) exitAction.setShortcut(‘Ctrl+Q‘) exitAction.setStatusTip(‘Exit application‘) exitAction.triggered.connect(self.close) menubar = self.menuBar() fileMenu = menubar.addMenu(‘&File‘) fileMenu.addAction(exitAction)
在上面這個示例中,我們創建了只由一個菜單組成的菜單欄。這個菜單也僅僅擁有一個選項【這裏原文是action,為了方便理解,我們下面將這個action有時翻譯成選項。】:結束應用。而且我們給這個選項添加了一個快捷鍵:Ctrl+Q。
Qt.Gui.QAction是這個行為的一個抽象。在上面這三行中,我們創建了有著自己圖標和名字一個選項,而且,我們給這個行為定義了一個快捷鍵。第三行創建了一個status tip,它的作用是鼠標放在這個選項上時,可以在狀態欄中顯示出狀態“Exit application”。
當我們選擇了這個選項時,一個觸發信號(triggered signal)被發出了。這個信號和QtGui.QApplication部件的quit()方法相聯系(connect),所以信號發出後,程序終止。
menuBar()方法創建了一個菜單欄。這裏我們在菜單欄的基礎上創建了一個file菜單,並在裏面添加了exit選項
bar1=self.statusBar() bar1.showMessage(‘Ready‘)
為了得到一個狀態欄,我們調用了QtGui.QMainWindow類中的statusBar()方法【註意Example是繼承QMainWindow的】。函數調用創建了一個狀態欄,接下來的showMessage()函數調用返回了一個狀態欄對象,showMessage()裏面的參數是顯示在狀態欄中的。
toolbar = self.addToolBar(‘Exit‘) toolbar.addAction(exitAction)
我們創建了一個工具欄並且給裏面加入了一個選項, 就是菜單選項exitAction
Python pyQt4學習筆記2