【问题标题】:Borders and background of QWidget aren't set by stylesheetQWidget 的边框和背景不是由样式表设置的
【发布时间】:2023-03-24 16:41:02
【问题描述】:

我已经设置了QWidget 的样式表来改变边框和背景,

#gui {
    border: 4px inset #515c84;
    border-radius: 9px;
    background-image: url(./back.png)
}

它的名字是gui,但既不显示边框也不显示背景。

【问题讨论】:

标签: qt background border stylesheet qwidget


【解决方案1】:

在您的 QWidget 子类中覆盖 paintEvent,如下所示:

void MyWidget::paintEvent(QPaintEvent *e)
{
    QStyleOption opt;
    opt.init(this);
    QStylePainter p(this);
    p.drawPrimitive(QStyle::PE_Widget, opt);
}

【讨论】:

    【解决方案2】:

    对于 Python-QT 绑定(PyQt、PySide),只需在 QWidget 上设置属性 WA_StyledBackground 即可显示边框和背景。

    【讨论】:

    • @user1153551 我认为它确实提供了答案。不行吗?
    • @user1153551 好的,我的回答仅限于 python qt 绑定。有兴趣知道在 C++ 上是否同样失败。
    猜你喜欢
    • 2019-06-21
    • 2011-06-17
    • 2022-01-09
    • 2021-07-05
    • 2014-08-30
    • 2013-03-01
    • 2017-07-12
    • 1970-01-01
    • 2023-03-31
    相关资源
    最近更新 更多