目錄
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_())
?
?