青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

隨筆 - 41, 文章 - 8, 評(píng)論 - 8, 引用 - 0
數(shù)據(jù)加載中……

[Python][PyQt4]在 PyQt4 中的菜單和工具欄

在 PyQt4 中的菜單和工具欄

在本部分中,我們將要?jiǎng)?chuàng)建菜單和工具欄。菜單就是在菜單欄中的一組命令。工具欄就是一組常用命令的按鈕。

主窗口

QtGui.QMainWindow 類(lèi)提供了一個(gè)應(yīng)用的主窗口。這使得我們可以創(chuàng)建典型的應(yīng)用框架,包括狀態(tài)欄,工具欄和菜單。

狀態(tài)欄

狀態(tài)欄主要用于顯示狀態(tài)信息。

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
ZetCode PyQt4 tutorial
This program creates a statusbar.
author: Jan Bodnar
website: zetcode.com
last edited: September 2011
"""
import sys
from PyQt4 import QtGui
class Example(QtGui.QMainWindow):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()
    def initUI(self):
        self.statusBar().showMessage('Ready')
        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Statusbar')
        self.show()
def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
if __name__ == '__main__':
    main()

狀態(tài)欄由 QtGui.QMainWindow 幫忙創(chuàng)建。

self.statusBar().showMessage('Ready')

為了得到狀態(tài)欄,我們調(diào)用了 QtGui.QMainWindowstatusBar() 方法。第一次調(diào)用創(chuàng)建了狀態(tài)欄,隨后返回 statusbar 對(duì)象。接著我們調(diào)用 showMessage 在狀態(tài)欄上顯示了一條消息。

菜單欄

菜單欄是 GUI 應(yīng)用中很常用的一部分。它是在多個(gè)菜單中命令的集合。在 console 應(yīng)用中,我們需要記住命令和它們的選項(xiàng)。而這里,我們把很多命令按照邏輯進(jìn)行分組。這就使得學(xué)習(xí)使用一個(gè)新的應(yīng)用的時(shí)間可以減少。

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
ZetCode PyQt4 tutorial
This program creates a menubar. The
menubar has one menu with an exit action.
author: Jan Bodnar
website: zetcode.com
last edited: August 2011
"""
import sys
from PyQt4 import QtGui
class Example(QtGui.QMainWindow):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()
    def initUI(self):
        exitAction = QtGui.QAction(QtGui.QIcon('exit.png'), '&Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(QtGui.qApp.quit)
        self.statusBar()
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Menubar')
        self.show()
def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
if __name__ == '__main__':
    main()

在上面的例子中,我們創(chuàng)建了只有一個(gè)菜單的菜單欄。這個(gè)菜單中包含了一個(gè) action ,如果選中后就會(huì)終止應(yīng)用。我們還創(chuàng)建了一個(gè)狀態(tài)欄。而且也可以用快捷鍵 Ctrl + Q 退出。

exitAction = QtGui.QAction(QtGui.QIcon('exit.png'))
exitAction.setShortcut('Ctrl+Q')
exitAction.setStatusTip('Exit application')

QtGui.QAction 是一個(gè) action 的抽象,包括菜單欄,工具欄或者是自定義的快捷鍵。在上面的三行,我們創(chuàng)建了一個(gè) action ,有一個(gè)指定的圖標(biāo)以及 ‘Exit’ 標(biāo)簽。而且,這個(gè) action 定義了快捷鍵。第三行則是創(chuàng)建一個(gè)提示,當(dāng)我們把鼠標(biāo)指針移到菜單條目上,將在狀態(tài)欄中顯示相應(yīng)的提示。

exitAction.triggered.connect(QtGui.qApp.quit)

當(dāng)我們選擇了這個(gè)特定的 action ,觸發(fā)的信號(hào)就被發(fā)送了。這個(gè)信號(hào)和 QtGui.QApplicationquit() 方法聯(lián)系在一起。這就終止了應(yīng)用。

menubar = self.menuBar()
fileMenu = menubar.addMenu('&File')
fileMenu.addAction(exitAction)

此處三行,創(chuàng)建了一個(gè)菜單欄。我們往菜單欄中添加了一個(gè)名為 File 的菜單,而且,我們把 Alt + F 設(shè)為了快捷方式。然后我們?cè)侔?exitAction 放到了 fileMenu 中。

工具欄

在一個(gè)應(yīng)用中,菜單把所有的命令分組。而工具欄中則提供了常用命令的快捷方式。

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
ZetCode PyQt4 tutorial
This program creates a toolbar.
The toolbar has one action, which
terminates the application, if triggered.
author: Jan Bodnar
website: zetcode.com
last edited: September 2011
"""
import sys
from PyQt4 import QtGui
class Example(QtGui.QMainWindow):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()
    def initUI(self):
        exitAction = QtGui.QAction(QtGui.QIcon('exit24.png'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.triggered.connect(QtGui.qApp.quit)
        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAction)
        self.setGeometry(300, 300, 300, 200)
        self.setWindowTitle('Toolbar')
        self.show()
def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
if __name__ == '__main__':
    main()

在上面的例子中,我們創(chuàng)建了一個(gè)簡(jiǎn)單的工具欄。這個(gè)工具欄有一個(gè)退出的 action ,當(dāng)觸發(fā)時(shí),就會(huì)終止應(yīng)用。

exitAction = QtGui.QAction(QtGui.QIcon('exit24.png'), 'Exit', self)
exitAction.setShortcut('Ctrl+Q')
exitAction.triggered.connect(QtGui.qApp.quit)

和前面菜單欄的例子一樣,我們也創(chuàng)建了一個(gè) action 對(duì)象。這個(gè)對(duì)象有一個(gè)標(biāo)簽,圖標(biāo)以及快捷方式。而且 QtGui.QMainWindowquit() 方法和其觸發(fā)信號(hào)關(guān)聯(lián)了起來(lái)。

self.toolbar = self.addToolBar('Exit')
self.toolbar.addAction(exitAction)

這里,我們創(chuàng)建了工具欄,并把 action 對(duì)象放入。

放到一起

本節(jié)的最后,我們將創(chuàng)建菜單欄,工具欄和狀態(tài)欄。而且也會(huì)創(chuàng)建一個(gè)居中的 widget 。

#!/usr/bin/python
# -*- coding: utf-8 -*-
"""
ZetCode PyQt4 tutorial
This program creates a skeleton of
a classic GUI application with a menubar,
toolbar, statusbar and a central widget.
author: Jan Bodnar
website: zetcode.com
last edited: September 2011
"""
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('exit24.png'), 'Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.setStatusTip('Exit application')
        exitAction.triggered.connect(self.close)
        self.statusBar()
        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()

這段代碼創(chuàng)建了一個(gè)有菜單欄,工具欄及狀態(tài)欄典型的 GUI 應(yīng)用。

textEdit = QtGui.QTextEdit()
self.setCentralWidget(textEdit)

這里,我們創(chuàng)建了一個(gè) text edit 的 widget 。我們把其設(shè)為 central widget。central widget會(huì)占用所有的空間。


在本部分,我們學(xué)習(xí)了菜單,工具欄,狀態(tài)欄和主應(yīng)用窗口。

posted on 2012-02-05 10:03 mirguest 閱讀(6208) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): Python

評(píng)論

# re: [Python][PyQt4]在 PyQt4 中的菜單和工具欄[未登錄](méi)  回復(fù)  更多評(píng)論   

我想問(wèn)題下,QMainWindow 跟 QWidget 兩個(gè)怎么搭配用, 也就是說(shuō),那些widget里面的東西怎么跟mainwindow放一塊去?
2013-04-04 15:16 | 西丁

# re: [Python][PyQt4]在 PyQt4 中的菜單和工具欄  回復(fù)  更多評(píng)論   

簡(jiǎn)介及哈哈哈哈哈哈哈哈哈哈和
2015-11-19 10:55 | 方法從
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            亚洲精品偷拍| 国产精品日韩二区| 激情综合激情| 久久只有精品| 美女尤物久久精品| 日韩亚洲国产欧美| 一区二区三区导航| 国产欧美日韩伦理| 国产精品久久久久一区二区三区| 一本色道久久综合亚洲二区三区| 亚洲精品裸体| 免费久久精品视频| 亚洲天堂免费观看| 午夜精品久久久久久99热| 狠狠综合久久| 亚洲国产欧美日韩另类综合| 欧美午夜精品久久久久久孕妇 | 欧美日韩在线视频一区| 亚洲与欧洲av电影| 久久久www| 一区二区av在线| 午夜在线精品偷拍| 日韩视频免费在线观看| 亚洲免费综合| 亚洲欧洲精品一区二区| 亚洲一区国产精品| 亚洲精品久久久久久一区二区 | 久久国产精品一区二区| 免费av成人在线| 欧美一区观看| 欧美精品在线免费观看| 久久男人av资源网站| 欧美日韩中文| 欧美成人亚洲| 国产欧美日韩免费| 日韩一级精品| 亚洲欧洲精品一区二区三区不卡 | 亚洲一区美女视频在线观看免费| 欧美中文在线免费| 亚洲一区二区三区精品动漫| 久久影院亚洲| 久久精品伊人| 国产精品美女久久| 亚洲免费av电影| 最新69国产成人精品视频免费| 欧美一区二区三区成人 | 国产香蕉97碰碰久久人人| 亚洲精品一区二区三区蜜桃久 | 欧美另类久久久品| 欧美国产另类| 一区视频在线| 欧美亚洲一区三区| 欧美在线1区| 国产精品久久午夜| 日韩一级成人av| 亚洲神马久久| 欧美日韩国产成人在线观看| 欧美激情亚洲综合一区| 悠悠资源网亚洲青| 久久久天天操| 美乳少妇欧美精品| 一区在线影院| 久久人人爽人人爽爽久久| 久久久久久亚洲精品杨幂换脸 | 欧美电影打屁股sp| 久久精品国产免费| 欧美日韩三区四区| 91久久一区二区| 亚洲日本欧美天堂| 美女亚洲精品| 亚洲美女av在线播放| 国产精品99久久久久久宅男| 欧美另类极品videosbest最新版本| 欧美激情二区三区| 亚洲麻豆av| 国产精品扒开腿做爽爽爽软件| 日韩视频不卡中文| 在线视频日韩精品| 欧美午夜久久久| 亚洲女女女同性video| 久久国产精品黑丝| 怡红院精品视频| 欧美精品一区二区三区一线天视频 | 国产综合色产| 久久综合九色| 日韩午夜精品视频| 亚洲欧美日韩天堂一区二区| 国产午夜精品美女毛片视频| 久久久亚洲高清| 夜夜嗨av一区二区三区中文字幕 | 久久夜色精品国产欧美乱| 亚洲第一区中文99精品| 欧美日本中文字幕| 午夜精品久久久久久久99水蜜桃| 久久综合五月| 一区二区三区av| 国产婷婷97碰碰久久人人蜜臀| 久久夜色精品亚洲噜噜国产mv| 亚洲人体偷拍| 久久精品卡一| 在线性视频日韩欧美| 国产原创一区二区| 欧美人与性动交α欧美精品济南到| 亚洲一区二区在线看| 欧美成人精品| 欧美怡红院视频| 99re视频这里只有精品| 国产一区二区三区av电影| 欧美久久九九| 久久久久久久久综合| 一区二区三区精品在线| 亚洲第一精品夜夜躁人人躁| 欧美一级大片在线免费观看| 亚洲美女毛片| 亚洲国产美女| 国产日韩精品久久| 欧美日韩亚洲不卡| 欧美成人免费在线观看| 欧美中文在线视频| 亚洲在线中文字幕| 亚洲九九精品| 亚洲国产精品成人一区二区| 久久久久久综合| 亚洲自拍偷拍福利| 9国产精品视频| 欧美在线观看视频一区二区三区| 欧美二区在线观看| 久久艳片www.17c.com| 欧美亚洲网站| 午夜精品剧场| 亚洲盗摄视频| 精品96久久久久久中文字幕无| 国产精品毛片a∨一区二区三区|国| 欧美精品一区二区三区在线播放| 欧美www在线| 久久亚洲春色中文字幕| 久久精品伊人| 久久裸体艺术| 久久se精品一区精品二区| 亚洲欧美日韩一区二区在线 | 欧美国产精品久久| 亚洲大胆人体视频| 欧美国产另类| 亚洲大胆女人| 亚洲精品午夜精品| 一区二区久久久久| 这里只有视频精品| 亚洲综合精品一区二区| 欧美中文字幕在线视频| 国产九九视频一区二区三区| 一本久久综合| 欧美一区二区三区四区在线观看 | 韩日精品视频| 亚洲福利免费| 亚洲欧洲视频在线| 亚洲美女视频在线观看| 宅男噜噜噜66一区二区| 亚洲欧美日韩综合一区| 欧美制服丝袜第一页| 久久久午夜视频| 欧美激情在线观看| 亚洲精品视频在线观看网站| 亚洲特黄一级片| 久久av一区二区三区| 免费日韩av电影| 欧美日韩综合在线免费观看| 国产精品尤物福利片在线观看| 国产一区二区三区久久久| 在线欧美日韩精品| 一区二区三区高清视频在线观看| 亚洲欧洲av一区二区| 久久天天狠狠| 亚洲精品永久免费| 欧美一区二区高清在线观看| 欧美sm重口味系列视频在线观看| 欧美日韩在线播放一区| 韩国欧美一区| 亚洲无线一线二线三线区别av| 久久精品亚洲国产奇米99| 欧美成人性生活| 亚洲无线视频| 卡通动漫国产精品| 国产伦精品一区二区三区照片91| 亚洲国产aⅴ天堂久久| 亚洲欧美成aⅴ人在线观看| 老鸭窝毛片一区二区三区| 在线亚洲高清视频| 久久综合伊人77777| 国产九区一区在线| 日韩视频不卡中文| 狼狼综合久久久久综合网| 在线视频精品一区| 欧美国产视频在线| 在线观看日韩av先锋影音电影院| 亚洲一区二区四区| 亚洲国产综合在线看不卡| 久久国产福利国产秒拍| 欧美日韩中文字幕在线| 亚洲精品在线观看免费| 久久精品成人欧美大片古装|