首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

QPainter在子窗口上画线,该如何解决

2013-06-19 
QPainter在子窗口上画线基类QWidget,上面放了一个Label控件(放其他控件也可以),要用QPainter在上面画线,应

QPainter在子窗口上画线
基类QWidget,上面放了一个Label控件(放其他控件也可以),要用QPainter在上面画线,应该如何写呢?

这是我写的widget.cpp

#include "widget.h"
#include "ui_widget.h"
#include <QPainter>
#include <QTimer>

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);
}

Widget::~Widget()
{
    delete ui;
    QTimer *timer = new QTimer(this);   //新建定时器
    QObject::connect(timer,SIGNAL(timeout()),this,SLOT(flushbuff()));    //关联定时器计满信号和相应的槽函数
    timer->start(500);
}

void Widget::paintEvent(QPaintEvent *)
{
    QPainter painter(ui->label);                 //
    painter.drawLine(0,0,100,100);
}

void Widget::flushbuff()
{
    ui->label->repaint();
}
各位大牛帮忙啊。。。
[解决办法]
2个方法:
1:从QWidget派生出一个类重写paintEvent,在里面画图。
2:给这个控件安装事件监视器,在QEvent::paint的时候画图。
2个办法其实是一回事,就是多写一个类的区别。
[解决办法]
楼主不是可以画一条线了么?
如果需要手动画,可以重载mousePressEvent和mouseMoveEvent.
[解决办法]
使用installEventFilter
在widget的外部进行绘制带有坐标轴的图像: http://www.cppblog.com/biao/archive/2009/10/31/99896.html

热点排行