我想添加一张图片作为我主窗口的背景。
添加此背景图片的最佳方法是什么?
我的主窗口的其余部分必须是透明的。
我想通过QtCreator
编辑器执行此操作(对于此组件,因此,无代码)
答案 0 :(得分:14)
您可以通过执行以下操作向MainWindow
添加背景图片:
QPixmap
并为其指定图片的路径。QPalette
并将其设为QBrush
与您的像素图,并ColorRole
为QPalette::Background
。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样式表语法。
答案 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);
。