无法将背景图像添加到QDockWidget

时间:2012-04-22 21:01:48

标签: qt qt4 qdockwidget qtstylesheets

据我所知,您将窗口小部件的背景设置为图像的方式是修改qstylesheet以表示:

background-image: url(<your image here>);

这似乎有效,除非它是QDockWidget的主要小部件。

这就是我所做的:

  1. 制作新的qt小部件项目
  2. 制作一个QWidget对象,可能会在那里放一两个按钮,以确保您知道它正在被使用。
  3. 将样式表更改为在步骤2中创建的窗口小部件,以包含:background-image: url(<your image here>);
  4. 在MainWindow ui文件中,添加QDockWidget,将其主要小部件提升为步骤2中制作的QWidget
  5. 当您运行该程序时,您会注意到QDockWidget的背景仍然是默认设置,但是您添加到窗口小部件的任何按钮或标签都将其背景更改为您选择的图像。

    当您将qss行从background-image更改为background-color并选择颜色而不是图像时,窗口小部件会更改颜色。

    有人有任何关于提供QDockWidget背景图片(而不仅仅是背景颜色)的建议吗?

1 个答案:

答案 0 :(得分:0)

显然你需要做的就是用以下方法覆盖小部件的痛苦事件:

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