Qt中设置背景图 昨天花了一天的时候在搞程序的背景图设置,刚开始的时候总出现问题,后来才发现是Qt的资源管理部分出了点问题,现在那个问题还没有解决,不过背景图已经设置好了,现在在这里面列出来两种方法:
方法一:利用QPalette,利用QPalette的话,我们既可以将背景图设置部分话在paintEvent()函数中,也可以将它放在构造函数中。如下所示我所使用的一个程序片断:
QPalette pal;
QString filename = QDir::currentPath()+ "/image/1.bmp";
QPixmap pixmap(filename);
pal.setBrush(QPalette::Window,QBrush(pixmap));
setPalette(pal);
|
方法二:利用QPainter的drawPixmap函数,这种方法只能用在paintEvent()函数中,如下所示为我所使用的一个程序片断:
QString filename = QDir::currentPath()+ "/image/1.bmp";
//QPixmap pixmap(":/image/zenity-calendar.png");
QPixmap pixmap(filename);
painter.drawPixmap(pixmap.rect(),pixmap);
|
在上面的代码片断中,注释起来的部分有问题,可是我不清楚为什么?哪位高手知道的话还请赐教!!!
最后附上我的一个程序:
|
文件: | mywork.tar.gz |
大小: | 13KB |
下载: | 下载 |
|
刚才又研究了一下 Qt Resource System ,终于发现了上面代码中的问题所在。下面是我的 .qrc 文件:
<RCC>
<qresource prefix="/new/prefix1" >
<file>image/1.bmp</file>
<file>image/valveManual.JPG</file>
<file>image/zenity-calendar.png</file>
</qresource>
</RCC>
|
若按照上述文件的话,上面的注释起来的代码应该这样写:
QPixmap pixmap(":/new/prefix1/image/1.bmp");
|
原因请看下一篇关于Qt Resource System的链接。这篇文章我以前就看过,当初感觉还挺简单,可在实际
中一用马上就出错,真是太马虎了, 鄙视一下自己,哈哈!
阅读(2052) | 评论(0) | 转发(0) |