QAction包含的内容有:icon, menu text, shortcut, status text, “What’s this” text, tooltip。既可以在调用constructor时创建,也可以用Set***()单独地设置。
同样的QAction可以通过menu, toolbar button, keyboard shortcut来引发,并且自动地在它们之间保持同步。
初始化QAction对象:一定要有所属的对象,然后可选的参数是字符串,最后可选的参数是Icon。python中可以快速地其他的属性,和连接信号。见例子中快速初始化QAction。
-
__init__ (self, QObject)
-
__init__ (self, QString, QObject)
-
__init__ (self, QIcon, QString, QObject)
Widget添加Action:QWidget.addAction(), QGraphicsWidget.addAction(),
eg:
def createActions(self):
self.openAct = QtGui.QAction(QtGui.QIcon(':/images/open.png'),
"&Open...", self, shortcut=QtGui.QKeySequence.Open,
statusTip="Open an existing file", triggered=self.open)self.textEdit.copyAvailable.connect(self.cutAct.setEnabled)
self.textEdit.copyAvailable.connect(self.copyAct.setEnabled)def createMenus(self):
self.fileMenu = self.menuBar().addMenu("&File")
self.fileMenu.addAction(self.openAct)def createToolBars(self):
self.fileToolBar = self.addToolBar("File")
self.fileToolBar.addAction(self.openAct)def createStatusBar(self):
self.statusBar().showMessage("Ready")成为Seperator:
Action可以设置成seperator. QWidget.addSeparator(), isSeperator()查询。
Checkbox的样子:
setCheckable(true), isCheckable(), isChecked(), setChecked()
Radio button的样子:
alignmentGroup = new QActionGroup(this); alignmentGroup->addAction(leftAlignAct); alignmentGroup->addAction(rightAlignAct); alignmentGroup->addAction(justifyAct); alignmentGroup->addAction(centerAct); leftAlignAct->setChecked(true);
QActionGroup有exclusive属性(设置成false则可以多选),Enabled,Disabled,Visible属性。可以用addAction(),removeAction(),actions(),checkedAction()添加删除查看组内的action。也可以通过QAction.setActionGroup()来设置所属于的ActionGroup。创建所包含的action时需把checkable设置为True,否则没有radio button的效果。
QWidget.addActions()来添加那些Action。其实还是添加QAction, 通过QAction的ActionGroup属性管理一组action. QActionGroup有自己的hovered,selected,triggered信号,不影响组内Action各自的所发出的信号。
Pop-up menu,或者说Sub-menu的样子:
QAction.setMenu(QMenu)
QMenu.addAction()有很多形式可以快速创建QAction.
-
QAction addAction (self, QString)
-
QAction addAction (self, QIcon, QString)
-
QAction addAction (self, QString, QObject, SLOT()SLOT(), QKeySequence shortcut = 0)
-
QAction addAction (self, QString, callable, QKeySequence shortcut = 0)
-
QAction addAction (self, QIcon, QString, QObject, SLOT()SLOT(), QKeySequence shortcut = 0)
-
QAction addAction (self, QIcon, QString, callable, QKeySequence shortcut = 0)