【问题标题】:Border-image not working for QWidget边框图像不适用于 QWidget
【发布时间】:2011-11-28 16:35:33
【问题描述】:

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

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

【问题讨论】:

  • Qt 4.4? Qt 现在不是 4.7,准备 4.8 了吗?
  • 是的。我正在开发一个旧产品,现在卡在这个版本上。
  • border-image 不是 CSS3 属性吗?我认为旧版本的 Qt 不会支持它。
  • Qt 4.4 中没有实现很多样式表的东西。特别是对于窗户。例如文本的渐变。在 Linux 中完美运行。

标签: qt qwidget


【解决方案1】:

尝试继承 QFrame 而不是 QWidget。我从未见过在普通 QWidget 上使用边框* 样式表。

【讨论】:

    【解决方案2】:

    您需要为您的 QWidget-derived-widget 提供一个绘制事件,以确保它加载样式表。

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

    【讨论】:

      猜你喜欢
      • 2022-08-23
      • 2020-10-29
      • 2018-01-14
      • 1970-01-01
      • 2012-05-16
      • 2011-09-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多