QApplication
a(argc,
argv);
MainWindow w;
w.show();
w.setWindowTitle("可控震源高效正演模拟软件");
w.setWindowIcon(QIcon(":/Icon.png"));
QPixmap pixmap(":/Icon.png");
w.setAutoFillBackground(true);
QPalette palette;
palette.setBrush(QPalette::Background,QBrush(pixmap));
w.setPalette(palette);
return a.exec();
以上程序段是存在问题的,所添加的背景图片如下所示:
难看哭了,不如用下面的painterevent添加:
主函数头文件里:
void
paintEvent(QPaintEvent
*e
);
void MainWindow::paintEvent(QPaintEvent
*e)
{
int he,wid,hb,wb;
he=MainWindow::height();
wid=MainWindow::width();
hb=50;wb=5;
QPainter paint(this);
QPixmap pic(":/Icon.png");
QPixmap paintmap(wid,he-hb);
QPainter pen(&paintmap);
pen.drawPixmap(0,0,wid,he-hb,pic);
paint.drawPixmap(0,hb,paintmap);
}
这里的主要思想是:
1、先设置一块画布:paintmap
2、在画布上设置画笔:
pen(&paintmap)
3、画笔在画布上作图,注意这时的起始点;
4、在窗口上做图,把画布画上。
这样就不会出现上面的情况了: