创建与使用菜单
获取菜单栏对象,并在菜单栏对象下创建标签,在标签下创建子标签。
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQt5.QtGui import *
class Menu(QMainWindow):
def __init__(self):
super(Menu, self).__init__()
# 获取菜单栏
bar = self.menuBar()
# 在菜单栏下创建一个标签“文件”
file = bar.addMenu("文件")
# 在文件标签下增加一个“新建”子标签
file.addAction("新建")
# 创建一个QAction对象
save = QAction("保存", self)
# 设置快捷键
save.setShortcut("Ctrl + S")
# 将QAction对象加入“文件”标签中,成为它的一个子标签
file.addAction(save)
save.triggered.connect(self.process)
# 创建新的标签“Edit”
edit = bar.addMenu("Edit")
edit.addAction("copy")
edit.addAction("paste")
# 创建退出子标签并加入“文件”标签中
quit = QAction("退出", self)
file.addAction(quit)
def process(self):
# 打印触发信号的那个控件的名字
print(self.sender().text())
if __name__ == '__main__':
app = QApplication(sys.argv)
main = Menu()
main.show()
sys.exit(app.exec_())
运行效果:
所以,我们得到了创建菜单栏的步骤:
- 通过
self.menuBar()
获取菜单栏对象。 - 通过菜单栏对象的
addMenu()
方法往菜单栏中增加标签。 - 往标签对象中增加子标签有两种方法:
- 直接使用标签对象的
addAction()
方法创建。 - 先创建
QAction()
对象,代表一个子标签,再以该对象为参数使用标签对象的addAction()
方法,将创建好的子标签加入标签中。需要注意的是创建QAction
对象时,需要填入self
参数,否则,即便使用addAction
传入后也不会再主菜单中显示。
- 直接使用标签对象的
创建和使用工具栏
往主窗口添加工具栏。
import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *
from PyQ