【发布时间】:2023-03-08 17:54:02
【问题描述】:
【问题讨论】:
-
不可能
标签: qt qtstylesheets qtoolbutton
【问题讨论】:
标签: qt qtstylesheets qtoolbutton
假设您像这样设置 QToolButton:
QToolButton* button {new QToolButton()};
button->setText("Button");
button->setToolButtonStyle(Qt::ToolButtonTextOnly);
button->setPopupMode(QToolButton::MenuButtonPopup);
QMenu* menu = new QMenu("Test menu", button);
menu->addAction("Test action");
button->setMenu(menu);
在 MenuButtonPopup 模式下,用于打开此 QToolButton 菜单的“箭头”是一个子控件(将其视为按钮中的按钮)。您可以像这样控制它在控件中的位置:
button->setStyleSheet(
"QToolButton { "
" padding-left: 5px;"
" padding-right: 60px;"
" border: 1px solid grey;"
"}"
""
"QToolButton::menu-button {"
" border: 2px solid red;"
" width: 36px;"
" right: 20px;"
" subcontrol-position: right center;"
" image: url(:/icons/down.png);"
"}"
);
这假设您已经在资源文件中设置了“/icons/down.png”图像文件。
我将子控件的边框设置为红色,以便更容易看到子控件的绘制位置。
当然,您可以从文件中加载样式表,而不是像示例中那样内联它。
请注意,由于您要替换小部件的默认样式,因此您需要根据需要指定其余样式。请注意,出于某种原因,如果您完全删除 QToolButton 小部件本身或其子控件的边框,样式将会出错。
【讨论】: