【问题标题】:How can I make the right margin in QToolButton for the indicator?如何在 QToolButton 中为指标设置右边距?
【发布时间】:2023-03-08 17:54:02
【问题描述】:

我有带有左图标和右指示器的 QToolButton(MenuButtonPopup 模式)。如何通过 qss 更改此距离?注意图片

工具按钮:

【问题讨论】:

  • 不可能

标签: qt qtstylesheets qtoolbutton


【解决方案1】:

假设您像这样设置 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 小部件本身或其子控件的边框,样式将会出错。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-03-31
    • 2017-02-01
    • 1970-01-01
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 2013-09-02
    • 1970-01-01
    相关资源
    最近更新 更多