我创建了一个QToolButton,标签将包括“&引用;但看起来Qt删除了它们,对吗?
我使用以下代码,第一部分,创建QToolButton,来自Designer/moc,其余部分我添加了我创建了一个QToolButton,标签将包括“&引用;但看起来Qt删除了它们,对吗?,qt,menu,qmenu,qtoolbutton,Qt,Menu,Qmenu,Qtoolbutton,我使用以下代码,第一部分,创建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
// 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_菜单
标题、“工具按钮菜单…”替换(我特意添加了一个稍微不同的标签)。但不知怎的,“…”从名字中删除了
你知道这个问题吗?这是一个特殊的Qt功能吗?qtool按钮显示来自
QAction
的文本(不是)<代码>文本用于菜单项,而iconText
用于工具栏。未设置时,iconText
是text
的精简版本
要覆盖触发
text
以生成iconText
的默认行为,您可以使用QAction::setIconText()
(即f_action->setIconText(“单击…”);
在调用f_action->setText
之后设置所需的iconText
).与您的问题无关,但您是否直接编辑moc生成的h文件?因为这些是自动生成的,所以下次运行moc时,所有更改都将丢失。不,我正在主窗口构造函数实现中添加代码。这是在一个地方显示所有相关代码。我的问题在于f_菜单
,我想我在问题中不清楚哪一个缺少…
。QAction
文本按预期工作。但是,执行f_tool_按钮->setText(“单击…”)代码>就在setDefaultAction()
工作之后@亚历克西斯·威尔克,我想你只是想写f_tool_button->setDefaultAction(f_菜单->actions().at(0))代码>而不是代码段中的最后一行menuAction
是整个菜单的操作,您似乎在寻找刚才使用addAction
添加的action
…不,我真的希望在右边有一个额外的小按钮和下拉额外选择。在同一个按钮上有两个选项。@AlexisWilke,哦,我误解了你的意思,因为我通常不会像你那样将QMenu
s添加到QToolBar
s中。我通常做一些类似的事情。无论如何,如果您关心的是“工具按钮菜单…”末尾的3个点,您只需在menuAction()上设置iconText
(如我的回答所示),然后将其设置为QToolButton
(即f_菜单->菜单操作->设置iconText(f_菜单->菜单操作->文本());
)。希望这对你有用:)