PyQt4 学习笔记2之菜单与工具栏

10 篇文章 0 订阅

PyQt4中的菜单与工具栏

单击此处可查看英文原版。
在接下来的PyQt4教程中,我们将学习如何创建菜单和工具栏。菜单是位于菜单栏的一组命令的集合。工具栏是在应用程序中对应常用命令的按钮。


主窗口

QtGui.QMainWindow类为应用程序提高了主窗口。它为应用程序提高了典型的窗口框架,包括状态栏、工具栏和菜单栏。

状态栏

以下代码展示了在QtGui.QMainWindow部件的帮助下创建状态栏。状态栏是用于显示状态信息的部件。

#!/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()

    def initUI(self):
        # 调用QtGui.QMainWindow类的statusBar()方法获取
        # 状态栏。第一次调用statusBar()函数时,会创建状态栏。
        # 后续调用时会返回状态栏对象。showMessage()将指定
        # 的消息在状态栏中显示。
        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()

菜单栏

菜单栏是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()

    def initUI(self):

        # QtGui.QAction是关于菜单栏、工具栏或自定义快捷键动作的抽象。
        # 创建指定图标和'&Exit'标签的动作。
        exitAction = QtGui.QAction(QtGui.QIcon('exit.png'), '&Exit', self)
        # 为该动作定义快捷键。
        exitAction.setShortcut('Ctrl+Q')
        # 当鼠标停留在菜单上时,在状态栏显示该菜单的相关信息。
        exitAction.setStatusTip('Exit application')
        # 选定特定的动作,发出触发信号。该信号与QtGui.QApplication部件的quit()方法
        # 相关联,这将会终止应用程序。
        exitAction.triggered.connect(QtGui.qApp.quit)

        self.statusBar()

        # menuBar()方法创建菜单栏。我们创建了一个文件菜单,并将退出动作添加在其后。
        menubar = self.menuBar()
        fileMenu = menubar.addMenu('&File')
        fileMenu.addAction(exitAction)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Menubar')
        self.show()


def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


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()

    def initUI(self):

        # 类似于上面菜单栏的例子,我吗创建一个QAction对象。该对象拥有一个标签、图标以及
        # 一个快捷键,并将QtGui.QMainWindow的quit()方法与之绑定。
        exitAction = QtGui.QAction(QtGui.QIcon('exit24.png'), '&Exit', self)
        exitAction.setShortcut('Ctrl+Q')
        exitAction.triggered.connect(QtGui.qApp.quit)

        # 创建工具栏,并将QAction对象添加到工具栏中。
        self.toolbar = self.addToolBar('Exit')
        self.toolbar.addAction(exitAction)

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('Toolbar')
        self.show()


def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


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()

    def initUI(self):

        # 创建文本输入框,并将其放置在QtGui.QMainWindow
        # 的中央。它将占据窗体剩下的所有空间。
        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)

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

        self.setGeometry(300, 300, 250, 150)
        self.setWindowTitle('MainWindow')
        self.show()


def main():

    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())


if __name__ == '__main__':
    main()

本文主要介绍了PyQt4中关于菜单栏、状态栏和工具栏的创建。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值