QMainWindow(二) QAction

来源:互联网 发布:千语软件 编辑:程序博客网 时间:2024/05/01 03:04

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)