• 9658阅读
  • 8回复

如何在一个指定的widget上画图 [复制链接]

上一主题 下一主题
离线ppdg
 
只看楼主 倒序阅读 楼主  发表于: 2009-06-17
当重新实现了当前窗口的paintevent函数后,函数内声明个Qpaint(this)就可以画图了,但是如果我想在别的widget上画应该怎么办?我试了下,在当前窗口的paintevent函数内声明个qpaint(this->ui->ppwidget),也画不到ppwidget上面去,难道只能画当前窗口的么?
附上我当前的类:
namespace Ui
{
    class MainWindowClass;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = 0);
    ~MainWindow();
    void paintEvent(QPaintEvent * event);

private:
    Ui::MainWindowClass *ui;
};
离线wu_java
只看该作者 1楼 发表于: 2009-07-13
顶一下,我也有同样的问题搞不定
离线xymail110
只看该作者 2楼 发表于: 2009-07-13
个人觉得需要重新实现MainWindowClass里面的paintEvent事件,就象你已经实现过的MainWindow类一样.
学无止境
离线randy
只看该作者 3楼 发表于: 2009-12-09
我也有这样的困难
离线jerychang
只看该作者 4楼 发表于: 2010-04-18
我也有,顶顶顶。高手回复
QT HAO..
离线tangxunmin

只看该作者 5楼 发表于: 2010-04-18
在你想画的那个widget的paintEvent()函数中实现
离线onselen
只看该作者 6楼 发表于: 2010-04-19
在paintEvent()中建立新的QPainter对象 然后把你要画的widget指针传过去就可以了
要充分理解paintEvent是如何工作的
离线a418877216

只看该作者 7楼 发表于: 2011-01-31
paintEvent  只是当前窗口的重绘用的,你可以给到别的窗口,但显示不出来。当调用另一个窗口的paintEvent函数时会把你绘制的冲到。
离线roywillow

只看该作者 8楼 发表于: 2011-01-31
只有继承widget重写paintEvent大概
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个