• 3770阅读
  • 2回复

在paintEvent中建立QPainter失败,求解 [复制链接]

上一主题 下一主题
 
只看楼主 倒序阅读 楼主  发表于: 2011-12-01
用this指针没问题,可以在窗口上画,但是换成他的一个子Widget指针就不行了,为什么呢?谢谢!

void MainWindow::paintEvent(QPaintEvent *event)
{
    QPainter painter;
    painter.begin(widget);
    painter.end();
}
离线jdwx

只看该作者 1楼 发表于: 2011-12-01
回 楼主(聪聪知不道) 的帖子
因为painterEvent只是在QEvent::Paint事件的时候才能画图,子控件的QEvent::Paint不会和主widget在同一个时间。
发帖时要说明:操作系统、Qt版本、编译器,这样能更快的得到回复。
只看该作者 2楼 发表于: 2011-12-05
回 1楼(jdwx) 的帖子
谢谢,还有一个问题。就是如果在MDIArea->viewport()返回的widget的paintEvent里面绘图,可以成功,而直接在MDIArea的paintEvent里面绘图则没有效果,debug模式下发现貌似根本就没有MDIArea的paintEvent产生。为什么呢?MDI的resizeEvent貌似会画一个灰色的背景,但是确没有paintEvent产生,我很迷惑
快速回复
限100 字节
 
上一个 下一个