• 5511阅读
  • 3回复

请大虾们贴个画图的例子吧!谢谢! [复制链接]

上一主题 下一主题
离线vs_bill
 
只看楼主 倒序阅读 楼主  发表于: 2006-12-07
比如先建立一个main Window,然后添加一个frame,在frame上画一条线什么的,折腾了多半天了,仍然没有结果:(请大虾们贴点相关的程序!特别是有关paintEvent()函数方面的,究竟如何使用。谢谢!
[ 此贴被XChinux在2006-12-24 09:50重新编辑 ]
离线cavendish

只看该作者 1楼 发表于: 2006-12-07
qt examples
离线wadext

只看该作者 2楼 发表于: 2007-06-17
重载mousePressEvent, mouseMoveEvent,paintEvent
定义两个全局变量QPoint oriPoint, desPoint 分别存储起始点和终点
在mousePressEvent中将鼠标坐标赋值给oriPoint,在mouseMoveEvent中将鼠标坐标赋值给desPoint,然后调用update(); 在paintEvent中定义QPainter对象实现画图就可以了
[ 此贴被wadext在2007-06-19 15:34重新编辑 ]
离线jzj139
只看该作者 3楼 发表于: 2007-06-19
#include <qpainter.h>
#include <qwidget.h>
#include <qapplication.h>

class MyWidget:public QWidget
{
public:
MyWidget(QWidget *parent =0,const char *name=0);

private:
void paintEvent( QPaintEvent * );
};
MyWidget::MyWidget(QWidget *parent,const char *name)
        : QWidget( parent, name )
{
   
}


void MyWidget::paintEvent( QPaintEvent * )
    {
        QPainter p;                      // 绘制工具
        p.begin( this );                  // 开始在窗口部件上绘制
        p.setPen( red );                  // 红色的外框
        p.setBrush( yellow );            // 用黄色填充
        p.drawEllipse( 10, 20, 200,200 ); // 在(10, 20)位置的200*200的椭圆
        p.end();                          // 绘制结束
    }

int main(int argc,char **argv)
{
QApplication app(argc,argv);
MyWidget mywidget;
app.setMainWidget(&mywidget);
mywidget.setCaption("123456789");
mywidget.show();
return app.exec();
}

这是个简单的例子,多看看教程和参考文档,你会很有体会的。。。。。。。
qt
快速回复
限100 字节
 
上一个 下一个