一、菜单栏

手工使用代码创建菜单栏主要有以下步骤:

1)创建一个获取窗口的menuBar实例(这个实例是MainWindow的成员属性)

2)在menuBar中添加Menu

3)在Menu中添加Actions

4)为Actions绑定triggered事件

菜单栏Demo:

importsys#导入QT,其中包含一些常量,例如颜色等
from PyQt5.QtCore importQt#导入常用组件
from PyQt5.QtWidgets importQApplication, QMainWindowfrom PyQt5.QtWidgets importQAction#使用调色板等
from PyQt5.QtGui importQIconclassDemoWin(QMainWindow):def __init__(self):
super().__init__()
self.initUI()definitUI(self):
self.resize(400, 250)#获取QMainWindow的MenuBar对象
bar =self.menuBar()#在menuBar上添加文件菜单
file = bar.addMenu("文件")
new= QAction("新建 (&N)", self)
open= QAction("打开 (&O)", self)
save= QAction("保存", self)#为一个Action设置快捷键
save.setShortcut("Ctrl + S")
saveAt= QAction("另存为", self)
file.addAction(new)
file.addAction(open)
file.addAction(save)
file.addAction(saveAt)#为文件-->保存绑定槽函数
save.triggered.connect(self.saveProcess)#在menuBar上添加编辑菜单
edit = bar.addMenu("编辑")
edit.addAction("复制")
edit.addAction("剪切")
edit.addAction("粘贴")#在编辑菜单中添加一个其他操作菜单,其中包含多个QAction
others = edit.addMenu("其他操作")
others.addAction("A操作")
others.addAction("B操作")
others.addAction("B操作")
quit= QAction("退出", self)#文件-->退出,绑定窗口的close槽
quit.triggered.connect(self.close)
file.addAction(quit)#添加窗口标题
self.setWindowTitle("MenuDemo")defsaveProcess(self):print("保存")if __name__ == '__main__':
app=QApplication(sys.argv)
app.setWindowIcon(QIcon("images/icon.ico"))#创建一个主窗口
mainWin =DemoWin()#显示
mainWin.show()#主循环
sys.exit(app.exec_())

实现效果:

python 菜单栏和工具栏 python菜单栏在哪_ico

二、工具栏

要使用工具栏,需要以下步骤:

1)在QMainWindow中添加一个工具栏 addToolBar()

2)在toolBar中添加Action(Action可以指定图标和名称,默认只显示图标,名称以tip的方式显示)

importsys#导入QT,其中包含一些常量,例如颜色等

from PyQt5.QtCore importQt#导入常用组件
from PyQt5.QtWidgets importQApplication, QMainWindowfrom PyQt5.QtWidgets importQAction, QMenu, QActionGroup#使用调色板等
from PyQt5.QtGui importQIconclassDemoWin(QMainWindow):def __init__(self):
super().__init__()
self.initUI()definitUI(self):
self.resize(400, 250)#创建一个toolBar,用于放置文件操作
fileBar = self.addToolBar("File")
new= QAction(QIcon('./images/new.jpg'), "新建", self) #指定了图标默认显示图标
fileBar.addAction(new)
open= QAction(QIcon('./images/open.jpg'), "打开", self)
fileBar.addAction(open)
fileBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)#设置名称显示在图标下面(默认本来是只显示图标)
fileBar.actionTriggered.connect(self.toolbtnpressed)#创建另一个toolbar,用于放置编辑操作
editBar = self.addToolBar("Edit")
copy= QAction("复制", self) #没有指定图标,默认显示名称
editBar.addAction(copy)
paste= QAction("粘贴", self)
editBar.addAction(paste)#添加窗口标题
self.setWindowTitle("ToolBarDemo")deftoolbtnpressed(self, a):print("按下的ToolBar按钮是", a.text()) #打印点击的按钮名称
if __name__ == '__main__':
app=QApplication(sys.argv)
app.setWindowIcon(QIcon("images/icon.ico"))#创建一个主窗口
mainWin =DemoWin()#显示
mainWin.show()#主循环
sys.exit(app.exec_())

实现效果:

python 菜单栏和工具栏 python菜单栏在哪_python工具栏消失_02

三、状态栏

状态栏存在于窗口的最下方,用于显示信息。

Demo:

importsys#导入QT,其中包含一些常量,例如颜色等
from PyQt5.QtCore importQt#导入常用组件
from PyQt5.QtWidgets importQApplication, QMainWindowfrom PyQt5.QtWidgets importQAction, QStatusBar#使用调色板等
from PyQt5.QtGui importQIconclassDemoWin(QMainWindow):def __init__(self):
super().__init__()
self.initUI()definitUI(self):
self.resize(400, 250)
fileBar= self.addToolBar("File")
new= QAction(QIcon('./images/new.jpg'), "新建", self)
fileBar.addAction(new)
open= QAction(QIcon('./images/open.jpg'), "打开", self)
fileBar.addAction(open)
fileBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
fileBar.actionTriggered.connect(self.toolbtnpressed)
editBar= self.addToolBar("Edit")
copy= QAction("复制", self)
editBar.addAction(copy)
paste= QAction("粘贴", self)
editBar.addAction(paste)#定义一个状态栏,并添加到窗口上
self.statusBar =QStatusBar()
self.setStatusBar(self.statusBar)#添加窗口标题
self.setWindowTitle("StatusBarDemo")deftoolbtnpressed(self, a):
self.statusBar.showMessage(a.text()+ "按钮被点击了.", 2000) #2000表示显示2s消失
if __name__ == '__main__':
app=QApplication(sys.argv)
app.setWindowIcon(QIcon("images/icon.ico"))#创建一个主窗口
mainWin =DemoWin()#显示
mainWin.show()#主循环
sys.exit(app.exec_())

实现效果:

python 菜单栏和工具栏 python菜单栏在哪_ico_03

====