Qt Creator和主窗口背景图像

时间:2013-06-13 20:02:15

标签: qt user-interface qt-creator

我想添加一张图片作为我主窗口的背景。

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

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

我想通过QtCreator编辑器执行此操作(对于此组件,因此,无代码)

3 个答案:

答案 0 :(得分:14)

您可以通过执行以下操作向MainWindow添加背景图片:

  1. 创建一个QPixmap并为其指定图片的路径。
  2. 创建一个QPalette并将其设为QBrush与您的像素图,并ColorRoleQPalette::Background
  3. 将您的MainWindow调色板设置为您创建的调色板。
  4. 作为示例,您可以将此行添加到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样式表语法。

答案 1 :(得分:8)

在修改主窗口窗体时,找到 styleSheet 属性,并输入如下内容:

background: url(:/path/to-your-resource.png)

答案 2 :(得分:0)

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

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