snifer

【技术分享】【原创】Qtopia绘图初接触

0
阅读(2449)

最近天天在实验室做小车啊,同学们热情似火,我们亚历山大啊!

今天又编了一下Qtopia,这个工具以后会越来越重要,今天,我写出来,与大家分享一下。

要用Qtopia,先保证安装软件:

RedHat Linux 9.0操作系统

嵌入式Linux开发环境

嵌入式Linux开发环境(含Qt/e和Qtopia)

我演示一下利用Qtopia创建一个窗口,在窗口进行画图,如直线、矩形和椭圆等。


在图形界面编程中,用户可能需要绘制一些有特殊意义的图形。Qt中提供了QPainter、QPen和QBrush等机制用于绘图,有非常灵活的API函数用于画图,如画点、画线、画矩形、椭圆和扇形等,使用这些API函数需要包含头文件qpainter.h和qbrush.h等。


(1)进入/sbc2410/x86-qtopia目录,运行set-env脚本,设置环境变量,然后创建文件夹draw。

$ cd /sbc2410/x86-qtopia

$ . set-env

$ mkdir draw

(2)进入draw目录,建立文件draw.cpp,并编写程序,然后使用progen工具生成工程文件draw.pro。

$ cd draw

$ vi draw.cpp

$ progen –t app.t –o draw.pro


(3)使用tmake工具,生成draw工程的Makefile文件,并进行修改,编译,得到可执行文件draw。

$ tmake –o Makefile draw.pro

$ make

(4)启动虚拟控制台,运行draw程序。

$ ./draw -qws

代码:



#include  #include  #include  #include  class DrawDemo:public QWidget { public: DrawDemo( QWidget *parent=0, const char *name=0 ); void paintEvent( QPaintEvent *); private: void drawPrimitives( QPainter *p); }; DrawDemo::DrawDemo( QWidget *parent, const char *name):QWidget(parent, name) { setBackgroundColor(white); } void DrawDemo::drawPrimitives(QPainter *p) { QBrush b1( Qt::blue ); QBrush b2( Qt::green, Qt::Dense6Pattern ); QBrush b3( Qt::NoBrush ); QBrush b4( Qt::CrossPattern ); p->setPen( Qt::red ); p->setBrush( b1 ); p->drawRect( 20, 20, 120, 90 ); p->setBrush( b2 ); p->drawRoundRect( 180, 20, 120, 90, 20, 20 ); p->setBrush( b3 ); p->drawEllipse( 20, 140, 120, 60 ); p->setBrush( b4 ); p->drawPie( 180, 140, 120, 120, 45*16, 90*16 ); p->setBrush( b1 ); p->drawLine( 20, 220, 300, 220 ); } void DrawDemo::paintEvent( QPaintEvent *) { QPainter paint(this); drawPrimitives(&paint); } int main(int argc, char **argv) { QApplication app(argc, argv); DrawDemo drawdemo; drawdemo.resize( 320, 240 ); drawdemo.setCaption( "QT DRAW DEMO"); app.setMainWidget(&drawdemo); drawdemo.show(); return app.exec();}
结果:




Baidu
map