• 2636阅读
  • 1回复

[提问]从父窗体中给子窗体绘图 [复制链接]

上一主题 下一主题
离线qazaq408
 

只看楼主 倒序阅读 楼主  发表于: 2014-12-07
有这样一个类
class Pix:public QWidget
{
  QPushButton* one;
  QPushButton* two;
.
.
private slot:
void rePaint();
};

一个QWidget上放了2个按钮,然后点击one,就可以在two上画一个图片
构造函数有这样一个连接
connect(one,SIGNAL(clicked()),this,SLOT(rePaint()));
然后槽我是这样写的
QPainter painter(two);   //按钮two上的画笔
QImage images("/path");  //制作一个图片
painter.drawImage(1,1,images);  //把图片画到按钮two上

但完成后我点击按钮one的时候two上什么都没有系统提示
QWidget::paintEngine: Should no longer be called
QPainter::begin: Paint device returned engine == 0, type: 1

我想问下这是什么情况,父窗体能不能直接给子窗体绘图,还是说只能重写子窗体的绘图事件
离线dbzhang800

只看该作者 1楼 发表于: 2014-12-07
首先,必须要重写子窗体的paintEvent() 函数,来实现绘制。这不不用多说。

当然,绘制代码你可以放在其他地方(比如父窗体的某个成员函数),只要在确保其在你子窗体的paintEvent() 内被调用即可。
快速回复
限100 字节
 
上一个 下一个