我创建了一个 QToolButton 并且标签将包含“...”,但看起来 Qt 删除了它们,对吗?
I created a QToolButton and the label would include "..." but it looks like Qt removes them, is that right?
我使用以下代码,第一部分,创建 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
标题替换,"Tool Button Menu ..."(我在上面放了一个稍微不同的标签目的)。但是不知何故,“...”从名称中删除了。
知道这个问题吗?这是 Qt 的特殊功能吗?
QToolButton
显示来自 QAction
的 iconText
property (not text
) 的文本。 text
用于菜单项,而 iconText
用于显示在工具栏中。未设置时,iconText
是 text
.
的精简版本
要覆盖默认的 text
生成 iconText
的行为,您可以使用 QAction::setIconText()
为您的 QAction
设置所需的 iconText
(即f_action->setIconText("Click...");
在您的 f_action->setText
电话之后。
我使用以下代码,第一部分,创建 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
标题替换,"Tool Button Menu ..."(我在上面放了一个稍微不同的标签目的)。但是不知何故,“...”从名称中删除了。
知道这个问题吗?这是 Qt 的特殊功能吗?
QToolButton
显示来自 QAction
的 iconText
property (not text
) 的文本。 text
用于菜单项,而 iconText
用于显示在工具栏中。未设置时,iconText
是 text
.
要覆盖默认的 text
生成 iconText
的行为,您可以使用 QAction::setIconText()
为您的 QAction
设置所需的 iconText
(即f_action->setIconText("Click...");
在您的 f_action->setText
电话之后。