目录
在使用Qt Creator创建UI文件时,MainWindow主窗口,主要包含:菜单栏、工具栏、状态栏等。
1、菜单栏
1.1、Qt Creator创建菜单栏
双击菜单栏上的“在这里输入”,输入文字,最后按回车键即可生成菜单。
例如,建立:文件、编辑两个一级菜单栏目,如下所示:
可以在一级目录下建二级目录,在文件栏目下建立打开栏目,如下所示:
在Qt Designer的属性编辑器中可以对动作进行编辑,设置快捷键、图标等信息,其详细信息如下图所示:
最后生成的UI文件可以再进行信号和槽的功能代码编写。
1.2、 菜单栏类创建菜单栏
在QMainWindow对象的标题栏下方,水平的QMenuBar被保留显示QMenu对象。QMenu类提供了一个可以添加到菜单栏的小控件,也用于创建上下文菜单和弹出菜单。每个QMenu对象都可以包含一个或多个QAction对象或级联的QMenu对象。
PyQt API提供了createPopupMenu()函数创建一个弹出菜单;menuBar()函数用于返回主窗口的QMenuBar对象; addMenu()函数可以将菜单添加到菜单栏中;通过addAction()函数可以在菜单中进行添加操作等。在设计菜单系统时使用的一些重要方法如下表所示:
通个示例了解QMenuBar、QMenu和QAction菜单栏类,示例效果如下所示:
示例中,顶层窗口必须是QMainWindow对象,才可以引用QMenuBar对象。通过addMenu()方法将“File"菜单添加到菜单栏中。菜单中的操作按钮可以是字符串或QAction对象。菜单发射triggered信号,将该信号连接到槽函数proecesstrigger(),该函数接收信号的QAction对象。单击任何QAction按钮时,QMenu对象都会发射triggered信号。
实现代码如下所示:
-
import sys
-
from PyQt5.QtCore import *
-
from PyQt5.QtGui import *
-
from PyQt5.QtWidgets import *
-
class MenuDemo(QMainWindow):
-
def __init__(self, parent=None):
-
super(MenuDemo, self).__init__(parent)
-
layout = QHBoxLayout()
-
bar = self.menuBar()
-
file = bar.addMenu("File")
-
file.addAction("New")
-
save = QAction("Save",self)
-
save.setShortcut("Ctrl+S")
-
file.addAction(save)
-
edit = file.addMenu("Edit")
-
edit.addAction("copy")
-
edit.addAction("paste")
-
quit = QAction("Quit",self)
-
file.addAction(quit)
-
file.triggered[QAction].connect(self.processtrigger)
-
self.setLayout(layout)
-
self.setWindowTitle("menu 例子")
-
self.resize(350,300)
-
def processtrigger(self,q):
-
print( q.text()+" is triggered" )
-
if __name__ == '__main__':
-
app = QApplication(sys.argv)
-
demo = MenuDemo()
-
demo.show()
-
sys.exit(app.exec_())
2、工具栏
QToolBar控件是由文本按钮、图标或其他小控件按钮组成的可移动面板,通常位于菜单栏下方。
。。。。。。。。。。。。。。。。。
版权原因,完整文章,请参考如下:Python Qt GUI设计:菜单栏、工具栏和状态栏的使用方法(拓展篇—2)