Qt设置Icon和背景图片

2019-04-15 16:10发布

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(); 以上程序段是存在问题的,所添加的背景图片如下所示: Qt中设置窗口图标及背景图片程序段 - John-waindinger - 微晕的树林

 难看哭了,不如用下面的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、在窗口上做图,把画布画上。
这样就不会出现上面的情况了:
Qt中设置窗口图标及背景图片程序段 - John-waindinger - 微晕的树林