Я создал QToolButton, и ярлык будет содержать "...", но похоже, что Qt удаляет их, это так?
Я использую следующий код, первая часть, создающая 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
title, "Tool Button Menu..." (я специально поставил несколько другой ярлык). Но каким-то образом "..." удаляется из названия.
Есть идеи об этой проблеме? Это особая функция Qt?
1 ответ
QToolButton
отображает текст из QAction
"s iconText
собственность (не text
). text
предназначен для использования в пунктах меню, тогда как iconText
предназначен для отображения на панелях инструментов. Когда не установлено, iconText
это раздетая версия text
,
Для переопределения поведения по умолчанию text
чтобы генерировать iconText
Вы можете установить желаемый iconText
для тебя QAction
с помощью QAction::setIconText()
(т.е. f_action->setIconText("Click...");
сразу после вашего f_action->setText
вызов).