單擊此處可檢視英文原版。
在接下來的pyqt4教程中,我們將學習如何建立選單和工具欄。選單是位於選單欄的一組命令的集合。工具欄是在應用程式中對應常用命令的按鈕。
qtgui.qmainwindow類為應用程式提高了主視窗。它為應用程式提高了典型的視窗框架,包括狀態列、工具欄和選單欄。
以下**展示了在qtgui.qmainwindow部件的幫助下建立狀態列。狀態列是用於顯示狀態資訊的部件。
選單欄是gui應用程式中常見的一部分。它是一組位於不同選單下的命令集合。(mac os處理選單的方式有所不同。為了獲取相同的結果,可以加入:menubar.setnativemenubar(false)。)#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from pyqt4 import qtgui
class
example
(qtgui.qmainwindow):
def__init__
(self):
super(example, self).__init__()
self.initui()
definitui
(self):
# 呼叫qtgui.qmainwindow類的statusbar()方法獲取
# 狀態列。第一次呼叫statusbar()函式時,會建立狀態列。
# 後續呼叫時會返回狀態列物件。showmessage()將指定
# 的訊息在狀態列中顯示。
self.statusbar().showmessage('ready')
self.setgeometry(300, 300, 250, 150)
self.setwindowtitle('statusbar')
self.show()
defmain
(): ex = example()
if __name__ == '__main__':
main()
在上面的例子中,我們建立了只有乙個選單的選單欄。這個選單包含乙個關閉應用程式的動作,使用者可以通過ctrl+q的快捷鍵執行該動作。我們同樣也建立了狀態列。#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from pyqt4 import qtgui
class
example
(qtgui.qmainwindow):
def__init__
(self):
super(example, self).__init__()
self.initui()
definitui
(self):
# qtgui.qaction是關於選單欄、工具欄或自定義快捷鍵動作的抽象。
# 建立指定圖示和'&exit'標籤的動作。
exitaction = qtgui.qaction(qtgui.qicon('exit.png'), '&exit', self)
# 為該動作定義快捷鍵。
exitaction.setshortcut('ctrl+q')
# 當滑鼠停留在選單上時,在狀態列顯示該選單的相關資訊。
# 相關聯,這將會終止應用程式。
self.statusbar()
# menubar()方法建立選單欄。我們建立了乙個檔案選單,並將退出動作新增在其後。
menubar = self.menubar()
filemenu = menubar.addmenu('&file')
filemenu.addaction(exitaction)
self.setgeometry(300, 300, 250, 150)
self.setwindowtitle('menubar')
self.show()
defmain
(): ex = example()
if __name__ == '__main__':
main()
選單將我們在應用程式中使用的所有命令進行分組。工具欄則為我們提供了常用命令的快速訪問。
在本節的最後,我們建立乙個帶有選單欄,工具欄和狀態列的應用程式視窗。同時,在窗體的**建立了乙個編輯文字框部件。#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from pyqt4 import qtgui
class
example
(qtgui.qmainwindow):
def__init__
(self):
super(example, self).__init__()
self.initui()
definitui
(self):
# 類似於上面選單欄的例子,我嗎建立乙個qaction物件。該物件擁有乙個標籤、圖示以及
# 乙個快捷鍵,並將qtgui.qmainwindow的quit()方法與之繫結。
exitaction = qtgui.qaction(qtgui.qicon('exit24.png'), '&exit', self)
exitaction.setshortcut('ctrl+q')
# 建立工具欄,並將qaction物件新增到工具欄中。
self.******* = self.add*******('exit')
self.*******.addaction(exitaction)
self.setgeometry(300, 300, 250, 150)
self.setwindowtitle('*******')
self.show()
defmain
(): ex = example()
if __name__ == '__main__':
main()
本文主要介紹了pyqt4中關於選單欄、狀態列和工具欄的建立。#!/usr/bin/python
# -*- coding: utf-8 -*-
import sys
from pyqt4 import qtgui
class
example
(qtgui.qmainwindow):
def__init__
(self):
super(example, self).__init__()
self.initui()
definitui
(self):
# 建立文字輸入框,並將其放置在qtgui.qmainwindow
# 的**。它將佔據窗體剩下的所有空間。
textedit = qtgui.qtextedit()
self.setcentralwidget(textedit)
exitaction = qtgui.qaction(qtgui.qicon('exit24.png'), '&exit', self)
exitaction.setshortcut('ctrl+q')
exitaction.triggered.connect(self.close)
self.statusbar()
menubar = self.menubar()
filemenu = menubar.addmenu('&file')
filemenu.addaction(exitaction)
self.******* = self.add*******('exit')
self.*******.addaction(exitaction)
self.setgeometry(300, 300, 250, 150)
self.setwindowtitle('mainwindow')
self.show()
defmain
(): ex = example()
if __name__ == '__main__':
main()
pyqt4學習筆記
訊號與槽機制作為qt最重要的特性,提供了任意兩個qt物件之間的通訊機制。其中,訊號會在某個特定情況或動作下被觸發,槽是用於接收並處理訊號的函式。例如,要將乙個視窗中的變化情況通知給另乙個視窗,則乙個視窗傳送訊號,另乙個視窗的槽接收此訊號並進行相應的操作,即可實現兩個視窗之間的通訊。這比傳統的圖形化程...
PyQt4 學習筆記4之事件與訊號
所有的gui應用程式都是基於事件驅動的。事件主要由應用程式的使用者產生,但也可以由其他方式生成 比如,網路連線,視窗管理器或者定時器。當呼叫應用程式的exec 方法時,應用程式就進入主迴圈,主迴圈獲取事件並將其傳送給相應的物件。在事件模型中,有三個參與者 事件源來自於狀態發生改變的物件,它們產生事件...
PyQt4 學習筆記7之控制項II
在本文中,我們繼續前一節的內容,談談pyqt4中的控制項。本節主要包括影象控制項 qtgui.qpixmap 行編輯控制項 qtgui.qlineedit 拆分控制項 qtgui.qsplitter 組合框控制項 qtgui.qcombobox qtgui.qpixmap控制項是處理影象控制項中的乙...