Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/react-native/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我创建了一个QToolButton,标签将包括“&引用;但看起来Qt删除了它们,对吗?_Qt_Menu_Qmenu_Qtoolbutton - Fatal编程技术网

我创建了一个QToolButton,标签将包括“&引用;但看起来Qt删除了它们,对吗?

我创建了一个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

我使用以下代码,第一部分,创建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_菜单
标题、“工具按钮菜单…”替换(我特意添加了一个稍微不同的标签)。但不知怎的,“…”从名字中删除了


你知道这个问题吗?这是一个特殊的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_菜单->菜单操作->文本());
)。希望这对你有用:)