目录
1、菜单栏(QMenu())——一般在窗口顶部
1)创建菜单栏步骤
2)信号与方法
3)实操
2、工具栏——一般在菜单栏下方
1)创建步骤
2)方法与信号
信号:
方法:
3)实操示例
3、状态栏QStateBar——用于显示状态信息,一般在窗口底部
1)使用步骤
2)以菜单栏点击动作触发状态栏为例
编辑
1、菜单栏(QMenu())——一般在窗口顶部
1)创建菜单栏步骤
菜单栏只有在窗口类型为QMainwindow才有,具体步骤为:
1)获取窗口菜单栏
2)给菜单栏添加条目
3)创建新的动作
4)将新的动作添加到对应的条目下
# 获取菜单栏bar = self.menuBar()# 往菜单栏添加菜单项目file = bar.addMenu("文件")# 给菜单项目添加子菜单new = file.addAction("新建")save = file.addAction("保存")
2)信号与方法
信号:主要有菜单栏上的动作触发信号triggled()
方法:给动作添加快捷键(setShortcut("CTRL+S"))等。
3)实操
from PyQt5.QtWidgets import QMainWindow,QApplication
from PyQt5.QtCore import QDateTime,QDate,QTime
import sysclass QMenuDemo(QMainWindow):def __init__(self):super(QMenuDemo, self).__init__()# 获取菜单栏bar = self.menuBar()# 往菜单栏添加菜单项目file = bar.addMenu("文件")# 给菜单项目添加子菜单new = file.addAction("新建")save = file.addAction("保存")save.setShortcut("CTRL+S") # 设置快捷键save.triggered.connect(self.saveActionSlot)def saveActionSlot(self):print(self.sender().text())if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QMenuDemo()mainWin.show()sys.exit(app.exec_())
2、工具栏——一般在菜单栏下方
1)创建步骤
1)创建一个工具栏
2)为工具栏添加动作
# 添加工具栏toolBar = self.addToolBar("File")# 创建新的动作,添加到工具栏new = QAction(QIcon('icon.jpg'),"new",self)save = QAction(QIcon("icon.jpg"),"save",self)toolBar.addAction(new)toolBar.addAction(save)
2)方法与信号
信号:
1)动作触发信号,和菜单栏一样action.triggered();
2)工具栏上有动作被触发信号toolBar.actionTriggered
方法:
1)给动作添加快捷键(setShortcut());
2)设置工具栏上的动作显示模式:
①只显示图标——toolBar.setToolButtonStyle(Qt.ToolButtonTextOnly)
②只显示文本——toolBar.setToolButtonStyle(Qt.ToolButtonTextOnly)
③图标文本都显示
文本显示在图标下面——toolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
文本显示在图标旁边——toolBar.setToolButtonStyle(Qt.ToolButtonTextUnderIcon)
注:一个工具栏上所有的动作显示模式都是一样的,如果需要显示模式不一样,则可以通过创建多个工具栏,然后分别对不同工具栏设置不同的显示模式
3)实操示例
from PyQt5.QtWidgets import QMainWindow,QApplication,QAction
from PyQt5.QtCore import QDateTime,QDate,QTime,Qt
from PyQt5.QtGui import QIcon
import sysclass QToolBarDemo(QMainWindow):def __init__(self):super(QToolBarDemo, self).__init__()# 添加工具栏toolBar = self.addToolBar("File")# 创建新的动作,添加到工具栏new = QAction(QIcon('icon.jpg'),"new",self)save = QAction(QIcon("icon.jpg"),"save",self)edit = QAction(QIcon("icon.jpg"),"edit",self)toolBar.addAction(new)toolBar.addAction(save)toolBar.addAction(edit)toolBar.setToolButtonStyle(Qt.ToolButtonTextBesideIcon)toolBar.actionTriggered.connect(self.showAction) # 工具栏上的动作被触发的信号,自动传回触发的动作对象self.setWindowTitle("工具栏演示")def showAction(self,a):print(a.text())if __name__ == '__main__':app = QApplication(sys.argv)mainWin = QToolBarDemo()mainWin.show()sys.exit(app.exec_())
3、状态栏QStateBar——用于显示状态信息,一般在窗口底部
1)使用步骤
1)先创建一个状态栏
self.statuBar = QStatusBar()2)然后将状态栏设置到窗口
self.setStatusBar(self.statuBar)3)将需要显示的信息显示在窗口
self.statuBar.showMessage(self.sender().text(), 5000)
2)以菜单栏点击动作触发状态栏为例
from PyQt5.QtWidgets import QMainWindow,QApplication,QStatusBar
from PyQt5.QtCore import QDateTime,QDate,QTime
import sysclass StatusBarDemo(QMainWindow):def __init__(self):super(StatusBarDemo, self).__init__()# 获取菜单栏bar = self.menuBar()# 往菜单栏添加菜单项目file = bar.addMenu("状态栏演示")# 给菜单项目添加子菜单new = file.addAction("显示状态栏")file.triggered.connect(self.showStatu) # 给菜单栏条目设置触发,会自动将触发的动作名称传给槽函数new.triggered.connect(self.showAction) # 给菜单栏动作设置触发,不会自动将触发的动作名称传给槽函数# 创建一个状态栏self.statuBar = QStatusBar()# 给窗口设置状态栏self.setStatusBar(self.statuBar)def showStatu(self,a):# 将消息显示在状态栏上5sself.statuBar.showMessage(a.text(),5000)def showAction(self):self.statuBar.showMessage(self.sender().text(), 5000)if __name__ == '__main__':app = QApplication(sys.argv)mainWin = StatusBarDemo()mainWin.show()sys.exit(app.exec_())