QMainWindow(二) QAction

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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值