[pyqt5学習] - メニューバー(QMenu())、ツールバーQToolBar学習

目次

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 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_())

 

 

おすすめ

転載: blog.csdn.net/qq_45769063/article/details/124992097