5

我想添加一个图像作为我的主窗口的背景。

添加此背景图像的最佳方法是什么?

我的主窗口的其余部分必须是透明的。

我想通过QtCreator编辑器来做这个(对于这个组件,因此,没有代码)

4

3 回答 3

15

您可以MainWindow通过执行以下操作将背景图像添加到您的:

  1. 创建一个QPixmap并为其提供图像的路径。
  2. 创建一个并使用您的像素图QPalette设置它,它是.QBrushColorRoleQPalette::Background
  3. 将您的MainWindow调色板设置为您创建的调色板。

例如,您可以将此行添加到MainWindow类的构造函数中:

MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    QPixmap bkgnd("/home/user/Pictures/background.png");
    bkgnd = bkgnd.scaled(this->size(), Qt::IgnoreAspectRatio);
    QPalette palette;
    palette.setBrush(QPalette::Background, bkgnd);
    this->setPalette(palette);
}

这样做的好处是您能够以编程方式修改/更改背景图像,而无需使用或学习任何 css 样式表语法。

于 2014-04-22T18:58:15.783 回答
8

在编辑主窗口表单时,找到styleSheet属性,然后输入如下内容:

background: url(:/path/to-your-resource.png)
于 2013-06-13T21:10:26.967 回答
0

如果您创建了一个<QGraphicsScene>例如。scene在您的主窗口中,然后您可以执行scene->setBackgroundBrush(QBrush(QImage(":/path/to/img.extension")));. 您需要首先将图像作为 QT 资源添加到项目中,并在路径/参数中使用:.

您应该提供一个符合您之前应该设置的场景尺寸的图像,例如。scene->setSceneRect(0,0,myWidth,myHeight);.

于 2018-04-22T23:10:05.860 回答