我有带有左图标和右指示器的 QToolButton(MenuButtonPopup 模式)。如何通过 qss 更改此距离?注意图片
问问题
47 次
1 回答
0
假设您像这样设置 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 小部件本身或其子控件的边框,则样式将出错。
于 2022-02-07T08:49:02.770 回答