边框图像不适用于 QWidget

发布于 2024-12-07 11:13:22 字数 172 浏览 1 评论 0原文

我有一个从 QWidget 派生的类。当我尝试使用样式表设置边框图像时,它似乎忽略它。我正在使用 QT 4.4,看起来 QWidget 应该支持边框图像。在绘画事件中我需要做些什么才能让它显示出来,或者我还缺少什么?

另外,是否可以使用 border-top-left-image 和其余图像来定义一系列边框图像?

I have a class derived from QWidget. When I try to use the style-sheet to set the border-image, it appears to ignore it. I am using QT 4.4 and it looks like the QWidget should support border-image. Is there something I would need to do in the paint event to get it to display, or something else I am missing?

Also, is it possible to define a series of images for the border, using border-top-left-image and the rest?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

泅渡 2024-12-14 11:13:22

尝试子类化 QFrame 而不是 QWidget。我从未见过 border* 样式表在普通的 QWidget 上工作。

Try subclassing QFrame instead of QWidget. I've never seen a border* style sheet work on a plain QWidget.

请叫√我孤独 2024-12-14 11:13:22

您需要为 QWidget 派生小部件提供绘制事件,以确保它加载样式表。

void MyWidget::paintEvent(QPaintEvent * event)
{
    QStyleOption option;
    option.init(this);
    QPainter painter(this);
    style()->drawPrimitive(QStyle::PE_Widget, &option, &painter, this);
    QWidget::paintEvent(event);
}

You need to provide a paint event for your QWidget-derived-widget to make sure it loads the stylesheet.

void MyWidget::paintEvent(QPaintEvent * event)
{
    QStyleOption option;
    option.init(this);
    QPainter painter(this);
    style()->drawPrimitive(QStyle::PE_Widget, &option, &painter, this);
    QWidget::paintEvent(event);
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文