1. 程式人生 > >Python pyQt4學習筆記2

Python pyQt4學習筆記2

qaction 一個 microsoft rdquo 所有 qtgui font 狀態 span

例子:狀態欄、菜單欄和工具欄

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