• 9252阅读
  • 15回复

如何把QPixmap设置为Widget的背景图片? [复制链接]

上一主题 下一主题
离线iiiyyyhhhsss
 

只看楼主 正序阅读 楼主  发表于: 2009-09-10
QPixmap background;
QWidget *widget;

background里已经有图片内容。。。就求那句代码。。。大家帮帮忙,烦了半天了。。。大家一定要帮帮忙。。。
离线sbtree
只看该作者 15楼 发表于: 2009-09-14
引用第14楼hhj7615于2009-09-14 12:02发表的  :
用setPaletteBackgroundPixmap()函数就可以实现了

这个方法直接,简单
windows 7 + VC++2008 + Qt4.5.2
离线hhj7615
只看该作者 14楼 发表于: 2009-09-14
用setPaletteBackgroundPixmap()函数就可以实现了
离线jorneyr

只看该作者 13楼 发表于: 2009-09-10
引用第5楼iiiyyyhhhsss于2009-09-10 16:26发表的  :
这个方法我看了不下一百遍了,
听网上说这个涉及什么重写函数之类的,什是在难为本人了,C++基础本来不好。。。
如何重写某个类里的某个函数,直接找到那个文件,然后更改它?

你也太难为大家了。
离线iiiyyyhhhsss

只看该作者 12楼 发表于: 2009-09-10
好的,thanks!我尝试写写这样的函数
离线free510
只看该作者 11楼 发表于: 2009-09-10
那个无所谓 把注释去掉也行 本身那个形参就没有用到
离线iiiyyyhhhsss

只看该作者 10楼 发表于: 2009-09-10
听你们说好像挺简单的,或者可能做起来真的是挺简单的,但是我感觉现在很混,可能需要点时间来整理清晰。。。

那么我还想问问free510,为什么函数参数里的event要注释掉呢?还有就是这个重载原来函数的新函数,和原来的函数,他们的类型,函数名和参数列表完全一样吗?
离线dbzhang800

只看该作者 9楼 发表于: 2009-09-10
子类化QWidget并重载paintEvent或许是最简单的方法了。

这个远比你想的要简单,而且子类化QWidget、QDialog、QMainWindow 我想你肯定也不知不觉地用过很多次了,你可以随便打开一个你的gui工程,相信你都是一个 main.cpp 一个重载的窗口类 xxxxx.cpp/.h
离线free510
只看该作者 8楼 发表于: 2009-09-10
比方说你创建一个widget继承自QWidget  叫做test_widget  在它的.h中 加上
private:

    void paintEvent(QPaintEvent * /* event */);

然后在它的.cpp中加上刚才上边说的那个实现,然后当你创建窗口的时候自动调用了paintEvent,背景就画出来了
离线iiiyyyhhhsss

只看该作者 7楼 发表于: 2009-09-10
应该有人做过背景设置吧,谁能给我一个涉及设置背景的工程代码,让我自己研究研究好了。。。
离线iiiyyyhhhsss

只看该作者 6楼 发表于: 2009-09-10
但是我看free510你的函数里,根本都没有涉及我的widget,如何又能放到我的widget上?
离线iiiyyyhhhsss

只看该作者 5楼 发表于: 2009-09-10
这个方法我看了不下一百遍了,

听网上说这个涉及什么重写函数之类的,什是在难为本人了,C++基础本来不好。。。

如何重写某个类里的某个函数,直接找到那个文件,然后更改它?
离线free510
只看该作者 4楼 发表于: 2009-09-10
void PaintArea::paintEvent(QPaintEvent *)
{
    QPainter p(this);
    p.drawPixmap(0,0,background->width(),background->height(),*background);
    this->resize(800,600);
}
离线iiiyyyhhhsss

只看该作者 3楼 发表于: 2009-09-10
这个办不到吗?
离线iiiyyyhhhsss

只看该作者 2楼 发表于: 2009-09-10
这个有关系吗?
我只想尽快看看实现的效果,就在main函数里简单的定义一个widget和一幅图片,然后widget->show()来显示,看如何镶嵌这幅图片进去。。。
那句代码是怎样的?
离线dbzhang800

只看该作者 1楼 发表于: 2009-09-10
不考虑子类化你的QWidgt ??
快速回复
限100 字节
 
上一个 下一个