新浪博客

QAction与 QKeySequence(动作与键盘序列)

2018-02-01 14:20阅读:
一、QAction(动作类) 在Qt中命令都是以统一的方式封装在QAction中的,这些命令包括菜单命令、工具栏命令,也就是说菜单项和工具栏按钮实际上是QAction,这样统一封装给界面编程带来了简单与快捷。我们所要做的工作仅仅是调用菜单或工具栏栏的addAction()方法生成QAction对象。
我们另一项工作就是设计好QAction的实例。下面是关于QAction的设计。
1.QAction初始化:
QAction(QObject *parent = nullptr)
QAction(const QString &text, QObject *parent = nullptr)
QAction(const QIcon &icon, const QString &text, QObject *parent = nullptr)
初始化工作可以为QAction添加显示文本和图标。但仅仅有文本和图标还是不够的,我们还有以下函数设置其状态:
void setActionGroup(QActionGroup *group)
void setAutoRepeat(bool)
void setCheckable(bool)
True,设置QAction为可检查,可检查的QAction可以在两个状态间来回切换,此时发射的是toggled信号,例如字处理程序中的加粗按钮。默认情况下,QAction是不可检查的,此时相当于命令按钮,发射triggered信号
void setData(const QVariant &userData)
void setFont(const QFont &font) 设置显示的字体
void setIcon(const QIcon &icon) 关联一个图标
void setIconText(const QString &text)
void setIconVisibleInMenu(bool visible)
void setMenu(QMenu *menu)
void setMenuRole(MenuRole menuRole)
void setPriority(Priority priority)
void setSeparator(bool b) 将QAction变成分隔符,默认不显示文本、图标等信息
void setShortcut(const QKeySequence &shortcut) 为QAction关联一个快捷键
void setShortcutContext(Qt::ShortcutContext context)
void setShortcutVisibleInContextMenu(bool show)
void setShortcuts(const QList &shortcuts)
void setShortcuts(QKeySequence::StandardKey key)
void setStatusTip(const QString &statusTip)
void setText(const QString &text)
void setToolTip(const QString &tip)
void setWhatsThis(const QString &what)

2.信号
当鼠标悬浮或者点击时,这些信号会被发送;同时,在以下插槽函数被调用时,也会发射相应的信号
void changed() 只要QAction状态发生改变就会发送,如多了个图标,换了文字等等
void hovered() 鼠标悬浮上空时发送该信号
void toggled(bool checked) 如果状态为选中,则checked为True,该参数会被发送
void triggered(bool checked = false) 切换状态下,checked根据是否选中决定值

3.slot插槽
void hover()
void setChecked(bool) 会导致发送triggered信号
void setDisabled(bool b)
void setEnabled(bool)
void setVisible(bool)
void toggle() 会导致发送toggled信号
void trigger() 会导致发送triggered信号

我的更多文章

下载客户端阅读体验更佳

APP专享