边框图像不适用于QWidget

时间:2011-09-30 18:20:53

标签: qt qwidget

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

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

2 个答案:

答案 0 :(得分:1)

尝试继承QFrame而不是QWidget。我从来没有在简单的QWidget上看到过border *样式表。

答案 1 :(得分:0)

您需要为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);
}