• 6458阅读
  • 9回复

paintEvent函数实现图片的加载 [复制链接]

上一主题 下一主题
离线zhangweihua1
 
只看楼主 倒序阅读 楼主  发表于: 2008-07-01
— 本帖被 XChinux 执行加亮操作(2008-08-19) —
我的主界面(顶层窗口)里用paintEvent函数已经实现了图片的加载,但是在主界面的子窗口里面就是加载不了图片(也是通过实现子窗口的paintEvent函数),就连基本的画图功能也实现不了(比如说划线),有人知道这是为什么吗?我想知道子窗口的paintEvent函数是怎么调用的?给点提示也好啊
下面是主界面的paintEvent函数
void CMMS::paintEvent(QPaintEvent* )
{
   
    QPixmap image("diaoju.png");
    QPixmap image1("background.png");
    QPixmap image2("trolley.png");
    QPixmap image3("bak.png");
    paint=new QPainter;
        paint->begin(this);
        paint->drawPixmap(0,0,image1);
        paint->drawPixmap(300,400,image);
        paint->drawPixmap(0,100,image3);
   
        paint->drawPixmap(300,120,image2);
       
        paint->drawText(300,300,"Revenue");
   
    paint->end();
   
   
    }
离线zhangweihua1
只看该作者 1楼 发表于: 2008-07-01
补充一点如下:
我在子窗口的paintEvent函数里面加了一个
QMessageBox box(this);
box.setText("Hello World999!");
box.exec();
运行程序没有消息框弹出,说明我的子窗口的paintEvent函数根本没有执行。当然就加载不了图片,我想知道子窗口的paintEvent函数是怎么调用的?我的主窗口的paintEvent函数是自动调用的。
离线yshadow

只看该作者 2楼 发表于: 2008-08-13
painEvent()是一个虚函数,
重载之后,会在实例化QWidget时,自动调用的.
不用你去调用.
离线yshadow

只看该作者 3楼 发表于: 2008-08-13
class CMMS
{

} ;

这个类要继承QWidget,因为paintEvent是QWidget的虚成员函数.
离线fanzhichao

只看该作者 4楼 发表于: 2008-08-15
引用第2楼yshadow于2008-08-13 17:19发表的  :
painEvent()是一个虚函数,
重载之后,会在实例化QWidget时,自动调用的.
不用你去调用.

事实不完全是这样,只有满足以下条件时才会调用子窗口的painEvent()
1.子窗口作为父窗口的成员变量在父窗口的构造函数中创建时
2.在其它位置创建后,加上show()
否则,子窗口虽然创建了,但并不会调用painEvent()
离线icevi

只看该作者 5楼 发表于: 2008-08-16
你考虑一下设置CMMS的setAutoFillBackground(true),如果为FALSE,应该是不会调用这段paintevent的。
====================
www.bilive.com
BiForm BiReader BiChat
最爱QT和PYTHON
====================
离线zhangweihua1
只看该作者 6楼 发表于: 2008-08-18
呵呵
谢谢楼上的各位大侠,我把CMMS这个类继承QWidget就可以了,谢谢大家!
离线icevi

只看该作者 7楼 发表于: 2008-08-22
晕倒
====================
www.bilive.com
BiForm BiReader BiChat
最爱QT和PYTHON
====================

只看该作者 8楼 发表于: 2008-08-24
楼主:
    小弟刚学qt,也碰到了类似的问题,能否告知如何继承的,非常感谢!!!!!!!!!!
离线zhangweihua1
只看该作者 9楼 发表于: 2008-08-25
我不知道你要解决什么问题,你可以发帖子,版主回帖很快的,大家也都会帮助你的。
快速回复
限100 字节
 
上一个 下一个