1

据我所知,将小部件的背景设置为图像的方法是将 qstylesheet 修改为:

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

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

这就是我所做的:

  1. 新建一个 qt 小部件项目
  2. 制作一个QWidget对象,可能会在那里放一个或两个按钮以确保您知道它正在被使用。
  3. 将样式表更改为步骤 2 中制作的小部件以包含:background-image: url(<your image here>);
  4. 在 MainWindow ui 文件中,将QDockWidget, 提升它的主小部件到QWidget步骤 #2 中制作的内容。

当您运行程序时,您会注意到QDockWidget的背景仍然是默认设置,但是您添加到小部件的任何按钮或标签都已将其背景更改为您选择的图像。

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

QDockWidget有没有人对提供背景图像(而不仅仅是背景颜色)有任何建议?

4

1 回答 1

0

Apparently all you need to do is overwrite the widget's pain event with:

void MyWidget::paintEvent(QPaintEvent *)
{
    QStyleOption opt;
    opt.init(this);
    QPainter p(this);
    style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
}
于 2012-05-13T15:56:15.290 回答