目次
1. メニュー バー (QMenu()) - 通常はウィンドウの上部にあります
3. ステータス バー QStateBar - ステータス情報を表示するために使用されます。通常はウィンドウの下部にあります。
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 sys
class 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 sys
class 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.statusBar)3) ウィンドウに表示する必要がある情報を表示します。
self.statuBar.showMessage(self.sender().text(), 5000)
2) 例として、メニュー バーのクリック アクションでステータス バーをトリガーします。
from PyQt5.QtWidgets import QMainWindow,QApplication,QStatusBar
from PyQt5.QtCore import QDateTime,QDate,QTime
import sys
class 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):
# 将消息显示在状态栏上5s
self.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_())