我使用以下代码,第一部分,创建QToolButton,来自Designer/moc,其余部分我添加。
// Moc part
QToolButton * f_tool_button = new QToolButton(bottom_grid);
f_tool_button->setObjectName(QStringLiteral("f_tool_button"));
f_tool_button->setText(QApplication::translate("MainWindow",
"Tool Button...", 0));
// What I added
f_action = new QAction(this);
f_action->setObjectName(QStringLiteral("f_action"));
f_action->setText(QApplication::translate("MainWindow",
"&Click...", 0));
f_menu.reset(new QMenu("Tool Button Menu ...", this));
f_menu->addAction(f_action);
f_tool_button->setDefaultAction(f_menu->menuAction());
如果我不打电话给setDefaultAction()
,标题会按预期显示。
当我添加默认操作时,标签似乎被f_menu
标题"工具按钮菜单...">所取代(我故意放置了一个稍微不同的标签(。但不知何故,"..."从名称中删除。
对这个问题有任何想法吗?这是一个特殊的Qt功能吗?
QToolButton
显示来自QAction
的iconText
属性(不是text
(的文本。text
用于菜单项,而iconText
用于显示在工具栏中。如果未设置,iconText
是text
的剥离版本。
要覆盖小费text
生成iconText
的默认行为QAction
iconText
,您可以使用QAction::setIconText()
(即f_action->setIconText("Click...");
在您f_action->setText
通话后立即发布(。