Menus and toolbars in PyQt5
来源:互联网 发布:木工雕刻机编程软件 编辑:程序博客网 时间:2024/06/01 09:31
原文链接:http://zetcode.com/gui/pyqt5/menustoolbars/
Statusbar
状态栏在QMainWindow组件的帮助下,创建成功。
在上述例子中,我们创建了一个只有一个菜单的菜单栏。这个菜单包含一个选中后中断程序的动作。快捷键为:Ctrl + Q。
还为该动作定义了一个快捷键。
在上述例子中,我们创建了一个简单的工具栏,该工具栏有一个动作,退出(当该动作被触发时,应用终止)
本节,我们将创建菜单和工具栏。
菜单是菜单栏中的一组命令,工具栏工具栏是应用程序中常用的按钮和一些命令。
Main Window
QMainWindow类提供了一个应用程序主窗口,这能够创建一个拥有状态栏、工具栏和菜单栏的经典应用窗口框架。
Statusbar
状态栏是一个用于显示状态信息的组件。
#!/usr/bin/python3# -*- coding: utf-8 -*-"""ZetCode PyQt5 tutorial This program creates a statusbar.author: Jan Bodnarwebsite: zetcode.com last edited: January 2015"""import sysfrom PyQt5.QtWidgets import QMainWindow, QApplicationclass Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): self.statusBar().showMessage('Ready') self.setGeometry(300, 300, 250, 150) self.setWindowTitle('Statusbar') self.show()if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
状态栏在QMainWindow组件的帮助下,创建成功。
为了得到statusBar,我们调用了QtGui.QMainWindow类的statusBar()方法。第一次调用该方法创建了一个状态栏,之后方法返回这个statusBar的对象。
showMessage()方法在statusBar上面显示信息。
MenuBar
一个菜单栏是GUI程序的Common part。
是各种各样菜单中的一组命令操作
Mac OS 对待菜单栏有些不同。为了得到相似的效果,我们可以加入一行如下代码:
menubar.setNativeMenuBar(False)
#!/usr/bin/python3# -*- coding: utf-8 -*-"""ZetCode PyQt5 tutorial This program creates a menubar. Themenubar has one menu with an exit action.author: Jan Bodnarwebsite: zetcode.com last edited: January 2015"""import sysfrom PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplicationfrom PyQt5.QtGui import QIconclass Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): exitAction = QAction(QIcon('exit.png'), '&Exit', self) exitAction.setShortcut('Ctrl+Q') exitAction.setStatusTip('Exit application') exitAction.triggered.connect(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() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
在上述例子中,我们创建了一个只有一个菜单的菜单栏。这个菜单包含一个选中后中断程序的动作。快捷键为:Ctrl + Q。
exitAction = QAction(QIcon('exit.png'), '&Exit', self) exitAction.setShortcut('Ctrl+Q')exitAction.setStatusTip('Exit application')QAction是一个用于菜单栏、工具栏或快捷键的抽象动作。在上述三行代码中,我们用指定图标和一个'Exit'标签创建了一个动作(Action)。
还为该动作定义了一个快捷键。
第三行代码,创建了一个状态tip,当我们将鼠标移动在菜单上时,显示在状态栏。
exitAction.triggered.connect(qApp.quit)当我们选中特定的动作时,一个触发信号会被发送。信号连接到QApplication组件的quit()方法,这样就中断了应用。
menubar = self.menuBar()fileMenu = menubar.addMenu('&File')fileMenu.addAction(exitAction)上述代码的menubar()方法,返回一个菜单栏,我们创建了一个File菜单,将Exit Action添加到File菜单中
Toolbar
菜单组合了所有我们可以在应用中使用的命令。工具栏提供了一个快速访问频繁使用的命令的方式。
#!/usr/bin/python3# -*- coding: utf-8 -*-"""ZetCode PyQt5 tutorial This program creates a toolbar.The toolbar has one action, whichterminates the application, if triggered.author: Jan Bodnarwebsite: zetcode.com last edited: January 2015"""import sysfrom PyQt5.QtWidgets import QMainWindow, QAction, qApp, QApplicationfrom PyQt5.QtGui import QIconclass Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): exitAction = QAction(QIcon('exit24.png'), 'Exit', self) exitAction.setShortcut('Ctrl+Q') exitAction.triggered.connect(qApp.quit) self.toolbar = self.addToolBar('Exit') self.toolbar.addAction(exitAction) self.setGeometry(300, 300, 300, 200) self.setWindowTitle('Toolbar') self.show() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
在上述例子中,我们创建了一个简单的工具栏,该工具栏有一个动作,退出(当该动作被触发时,应用终止)
exitAction = QAction(QIcon('exit24.png'), 'Exit', self)exitAction.setShortcut('Ctrl+Q')exitAction.triggered.connect(qApp.quit)和上面创建一个菜单栏类似,我们创建一个动作对象,该对象有一个标签,图标和快捷键。
一个QtGui.QMainWindow的quit()方法被连接到触发信号。
self.toolbar = self.addToolBar('Exit')self.toolbar.addAction(exitAction)这里我们创建一个工具栏,添加一个动作对象。
Putting it together
在该节的最后,我们创建一个菜单栏,工具栏,和一个状态栏。同时我们会创建一个中心组件。
#!/usr/bin/python3# -*- coding: utf-8 -*-"""ZetCode PyQt5 tutorial This program creates a skeleton ofa classic GUI application with a menubar,toolbar, statusbar, and a central widget. author: Jan Bodnarwebsite: zetcode.com last edited: January 2015"""import sysfrom PyQt5.QtWidgets import QMainWindow, QTextEdit, QAction, QApplicationfrom PyQt5.QtGui import QIconclass Example(QMainWindow): def __init__(self): super().__init__() self.initUI() def initUI(self): textEdit = QTextEdit() self.setCentralWidget(textEdit) exitAction = QAction(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() if __name__ == '__main__': app = QApplication(sys.argv) ex = Example() sys.exit(app.exec_())
上述代码示例,创建了一个含有菜单栏,工具栏,状态栏典型的GUI应用。
textEdit = QTextEdit()self.setCentralWidget(textEdit)这里我们创建一个文本编辑框组件,我们把他设置成QMainWindow的中心组件。中心组件将会占据所有剩下的空间。
在该节的教程中,我们使用了菜单、工具栏、状态栏和一个应用的主窗口。
0 0
- Menus and toolbars in PyQt5
- (转)3.2 创建菜单和工具栏(Creating Menus and Toolbars)
- 3-2 创建菜单和工具条(Creating Menus and Toolbars)
- Creating and Deleting Custom Menus in Visio
- Events and signals in PyQt5
- Buttons and Toolbars
- Action、Menus、ToolBars主窗体构成的实现
- Docking Toolbars in Plain C
- Toolbars
- Use blocks and menus
- Create links to PyQt5 and Qt Creator in PyCharm
- Owner Draw Menus in C#
- Menus
- menus
- Layout management in PyQt5
- Dialogs in PyQt5
- No response for the toolbars in BEx Analyzer 2004s
- 6.5 可停靠控件及工具栏(Dock Widgets and Toolbars)
- 关于本地tomcat的使用
- Android自定义控件及事件
- 微信小程序全方位深度解析课程Dome-First项目index
- HTML页面在一定的时间内自动跳转
- GATK流程
- Menus and toolbars in PyQt5
- 继承
- 数学之美!~(02)十位伟大的数学家!
- python编程中的if __name__ == '__main__': 的作用和原理
- Android多分辨率适配
- 数据结构实验之图论八:欧拉回路
- div中删除指定元素
- MPAndroidChart的相关图表设置
- JDNI、dbcp、c3p0、jdbc简单总结--整理