c++ - 在 C++ 中使用 qt 在工具栏中显示图标的状态
问题描述
我想在工具栏中显示图标的状态(它们是否被激活)。例如,当我单击Microsoft word 中的粗体、斜体或下划线图标时,它会变暗,再次单击时会切换到正常状态。没有必要被遮蔽。我只需要区分它是否被激活。
解决方案
您必须检查 QAction,或使用可检查的 QWidget,如 QToolButton:
#include <QtWidgets>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
QMainWindow w;
QToolBar *toolbar = w.addToolBar("Toolbar");
QAction *bold_action = toolbar->addAction("B");
QFont bold_fn(bold_action->font());
bold_fn.setBold(true);
bold_action->setFont(bold_fn);
bold_action->setCheckable(true);
QAction *italic_action = toolbar->addAction("I");
QFont fn_cursive(italic_action->font());
fn_cursive.setItalic(true);
italic_action->setFont(fn_cursive);
italic_action->setCheckable(true);
QAction *underline_action = toolbar->addAction("U");
QFont fn_underline(underline_action->font());
fn_underline.setUnderline(true);
underline_action->setFont(fn_underline);
underline_action->setCheckable(true);
QAction* subscript_action = new QAction;
subscript_action->setIcon(QIcon(":/subscript.png"));
subscript_action->setCheckable(true); // <---
toolbar->addAction(subscript_action);
w.setCentralWidget(new QTextEdit);
w.resize(320, 240);
w.show();
return a.exec();
}
输出:
推荐阅读
- java - 找到以编程方式创建的 TextView?
- reactjs - event.currentTarget.files 不适用于 React Typescript
- javascript - 角度错误 TS2339 试图从烧瓶服务器访问/检索数据
- javascript - 如何测试:onClick 事件 - Jest/ Enzyeme
- artificial-intelligence - 在神经网络中,为什么我们在反向传播时将减号放在导数前面?
- linux - 如何检测操作系统并有条件地加载 ZSH 设置?
- python - 如何动态重新渲染模板?
- elixir - Heroku CI,Phoenix,Elixir:'角色“postgres”不存在''psql:致命:数据库“u13792”不存在'
- java - Java:如何不允许变量低于 0
- python - 条件语句工作不正确-python