PyQt5的菜单栏、工具栏和状态栏

1、创建菜单栏
import sys, math
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class menu(QMainWindow):
def __init__(self):
super(menu, self).__init__()
bar=self.menuBar() #获取菜单栏

#添加顶层菜单
file=bar.addMenu("文件")
help=bar.addMenu("帮助")
file.addAction("新建")

#给顶层菜单添加相应的匹配分菜单
save=QAction("保存",self)
save.setShortcut("Ctrl+S") #给分菜单设置快捷键
file.addAction(save)
save.triggered.connect(self.process) #菜单栏设置相应的信号触发和槽函数

edit=bar.addMenu("edit") #设置第二个菜单栏的内容
#设置第三层菜单栏的包含的成分
edit.addAction("cut")
edit.addAction("paste")
quit=QAction("quit",self)

help.addAction("版本信息")
help.addAction("许可证信息")

file.addAction(quit)
def process(self,a):
print(self.sender().text())

if __name__ == "__main__":
app = QApplication(sys.argv)
p = menu()
p.show()
sys.exit(app.exec_())

2、创建工具栏,默认状态为只显示图标,放上鼠标显示名称
import sys, math
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class toolbar(QMainWindow):
def __init__(self):
super(toolbar, self).__init__()
self.initUI()

def initUI(self):
self.setWindowTitle("工具栏")
self.resize(300,200)

tb1=self.addToolBar("File") #定义一层工具栏
new=QAction(QIcon("./image-1/1-1.jpg"),"new",self) #设置工具栏的图标new
tb1.addAction(new)

open = QAction(QIcon("./image-1/1-2.jpg"), "open", self) #设置工具栏的图标open
tb1.addAction(open)
open.triggered.connect(self.print1) #工具栏的信号触发函数triggered

save = QAction(QIcon("./image-1/1-3.png"), "save", self) # 设置工具栏的图标save
tb1.addAction(save)

#添加第二个工具栏所包含的图标肯文本说明
tb2=self.addToolBar("file1")
save2 = QAction(QIcon("./image-1/1-3.png"), "save", self) # 设置工具栏的图标save
tb2.addAction(save2)

#设置工具栏的显示格式
tb2.setToolButtonStyle(Qt.ToolButtonTextUnderIcon) #图标肯功能说明文本混合,文本在下面
tb2.setToolButtonStyle(Qt.ToolButtonTextOnly)

def print1(self):
print("hello world")




if __name__ == "__main__":
app = QApplication(sys.argv)
p = toolbar()
p.show()
sys.exit(app.exec_())

3、创建状态栏,主要显示目前的一些状态信息,y一般位于窗口的下方
import sys, math
from PyQt5.QtWidgets import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *

class statusbar(QMainWindow):
def __init__(self):
super(statusbar, self).__init__()
self.initUI()

def initUI(self):
self.setWindowTitle("状态栏")
self.resize(300,200)

bar=self.menuBar()
file=bar.addMenu("file")
file.addAction("show")
file.triggered.connect(self.process)
self.setCentralWidget(QTextEdit())
self.statusbar=QStatusBar() #定义一个新的状态栏
self.setStatusBar(self.statusbar) #设置窗口的状态栏

def process(self,q):
if q.text()=="show":
self.statusbar.showMessage(q.text()+"菜单被点击了",5000) #设置槽函数,状态栏显示信息
def print1(self):
print("hello world")
if __name__ == "__main__":
app = QApplication(sys.argv)
p =statusbar()
p.show()
sys.exit(app.exec_())


原文地址:https://www.cnblogs.com/Yanjy-OnlyOne/p/12293895.html