PyQt4编程之如何做菜单栏
菜單欄是大部分軟件都有的,菜單欄能提供便捷的幫助,記事本的菜單欄就是最簡單的一個例子,等過幾天我會寫記事本的菜單欄了再另外發(fā)代碼出來。
下面的代碼是Copy的:
import sys from PyQt4 import QtGui,QtCoreclass MainWindow(QtGui.QMainWindow):def __init__(self):QtGui.QMainWindow.__init__(self)self.resize(250,150) self.move(600,300)self.setWindowTitle('menubar')exit = QtGui.QAction(QtGui.QIcon('web.png'),'Exit',self) #創(chuàng)建相應(yīng)的動作(自己的理解)exit.setShortcut('Ctrl+Q') #創(chuàng)建前面動作的快捷方式exit.setStatusTip('Exit application') #屬于QAction這個類的成員函數(shù),用于設(shè)置在狀態(tài)欄提示前面動作的信息self.connect(exit,QtCore.SIGNAL('triggered()'),QtCore.SLOT('close()')) #建立信號和槽之間的連接,self.statusBar().showMessage("ready")menubar = self.menuBar()file= menubar.addMenu('&File')file.addAction(exit) app=QtGui.QApplication(sys.argv) main = MainWindow() main.show() sys.exit(app.exec_())這里我想詳細(xì)分析一下。
首先查看QAction這個類,可以發(fā)現(xiàn)它有三種實(shí)例化方式:
QAction(QObject) QAction(QString, QObject) QAction(QIcon, QString, QObject)顯然我們這里采用的是第三種實(shí)例化方式。我想說的是,我們不僅要看得懂別人的代碼,重要的是自己還要會分析在這么多選擇下,他為什么要這么寫。(顯然,代碼的作者要生成圖標(biāo),所以選第三種)
我們再看一下setShortcut這個函數(shù),它是QAction這個類的成員函數(shù),exit是QAction實(shí)例化的一個對象,所以exit調(diào)用setShortcut這個函數(shù)就很正常了,另外,setShortcu函數(shù)的原型是:defsetShortcut(self, QKeySequence),QKeySequence也可以猜出來其參數(shù)是快捷鍵了。
有了剛才那個例子,我們也可以猜出來setStatusTip是QAction的成員函數(shù)了,我們在看一下它的原型:
defsetStatusTip(self, QString),很明顯,QString是我們要顯示的提示信息了。
緊接著又出現(xiàn)了和上面函數(shù)很像的statusBar(),點(diǎn)進(jìn)去發(fā)現(xiàn),它是屬于QMainWindow這個類的,所以用self就是對的
它的原型是defstatusBar(self),返回值類型是QstatusBar,結(jié)合英文可以猜知它的作用是獲得狀態(tài)欄,
再看一下它的尾巴showmessage(),
點(diǎn)開發(fā)現(xiàn)它有五種類型,這里顯然點(diǎn)進(jìn)去第四個,發(fā)現(xiàn)它就是QstatusBar的成員函數(shù)。進(jìn)而聯(lián)系到它的作用,在狀態(tài)欄上顯示信息。 我也點(diǎn)進(jìn)去了其他的,發(fā)現(xiàn)它屬于的類都不是QstatusBar。(從后面的括號信息也看得出) self.connect(exit,QtCore.SIGNAL('triggered()'),QtCore.SLOT('close()')) #建立信號和槽之間的連接, 這一句話我沒有介紹,它是信號和槽之間的連接,有一篇文章不錯,點(diǎn)擊打開鏈接總結(jié)
以上是生活随笔為你收集整理的PyQt4编程之如何做菜单栏的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PyQt4编程之如何让状态栏显示信息
- 下一篇: PyQt4编程之自定义插槽