PyQt5是基于Python的PyQt库中的一个用于创建GUI应用程序的模块,其中QAction是用于创建动作菜单的类。
下面是QAction的完整使用攻略:
引入库和创建窗口
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction
app = QApplication(sys.argv)
window = QMainWindow()
window.setWindowTitle('QAction Tutorial')
创建动作菜单
我们需要使用QAction类来创建动作菜单。该类提供了许多方法和属性,其中最常用的是setText和setShortcut方法。
创建一个简单的Action
file_action = QAction('File', window)
这个动作代表了一个文件菜单。
添加快捷键
file_action.setShortcut('Ctrl+F')
添加图标
file_action.setIcon(QIcon('file_icon.png'))
添加样式表
file_action.setStyleSheet('color: red')
将动作添加到菜单栏或工具栏中
添加到菜单栏
menu_bar = window.menuBar()
file_menu = menu_bar.addMenu('File')
file_menu.addAction(file_action)
添加到工具栏
tool_bar = window.addToolBar('File')
tool_bar.addAction(file_action)
处理动作事件
我们可以Connect方法连接动作和一个函数,使得当动作被点击时调用相应的函数。
def file_clicked():
print('File clicked')
file_action.triggered.connect(file_clicked)
完整示例
import sys
from PyQt5.QtWidgets import QApplication, QMainWindow, QAction, QToolBar, QMenuBar, QIcon
class Window(QMainWindow):
def __init__(self):
super().__init__()
self.setWindowTitle('QAction Tutorial')
self.setGeometry(300, 300, 400, 300)
self.create_menu_bar()
self.create_tool_bar()
def create_menu_bar(self):
menu_bar = self.menuBar()
# File menu
file_menu = menu_bar.addMenu('File')
new_action = QAction('New', self)
new_action.setShortcut('Ctrl+N')
new_action.setIcon(QIcon('new.png'))
new_action.triggered.connect(self.new_clicked)
file_menu.addAction(new_action)
open_action = QAction('Open', self)
open_action.setShortcut('Ctrl+O')
open_action.setIcon(QIcon('open.png'))
open_action.triggered.connect(self.open_clicked)
file_menu.addAction(open_action)
save_action = QAction('Save', self)
save_action.setShortcut('Ctrl+S')
save_action.setIcon(QIcon('save.png'))
save_action.triggered.connect(self.save_clicked)
file_menu.addAction(save_action)
file_menu.addSeparator()
exit_action = QAction('Exit', self)
exit_action.setShortcut('Ctrl+Q')
exit_action.triggered.connect(self.close)
file_menu.addAction(exit_action)
def create_tool_bar(self):
tool_bar = self.addToolBar('File')
new_action = QAction(QIcon('new.png'), 'New', self)
new_action.setShortcut('Ctrl+N')
new_action.triggered.connect(self.new_clicked)
tool_bar.addAction(new_action)
open_action = QAction(QIcon('open.png'), 'Open', self)
open_action.setShortcut('Ctrl+O')
open_action.triggered.connect(self.open_clicked)
tool_bar.addAction(open_action)
save_action = QAction(QIcon('save.png'), 'Save', self)
save_action.setShortcut('Ctrl+S')
save_action.triggered.connect(self.save_clicked)
tool_bar.addAction(save_action)
def new_clicked(self):
print('New clicked')
def open_clicked(self):
print('Open clicked')
def save_clicked(self):
print('Save clicked')
app = QApplication(sys.argv)
window = Window()
window.show()
sys.exit(app.exec_())
以上就是QAction的完整使用攻略,其中包括了如何创建动作,如何将动作添加到菜单栏或工具栏中,以及如何处理动作事件。在完整示例中,我们创建了一个窗口,并添加了菜单栏和工具栏,这些菜单和工具可以通过点击或使用快捷键来触发动作事件。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:PyQt5 – QAction - Python技术站