Chinaunix首页 | 论坛 | 博客
  • 博客访问: 494540
  • 博文数量: 144
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1190
  • 用 户 组: 普通用户
  • 注册时间: 2013-10-08 20:16
文章分类

全部博文(144)

文章存档

2017年(1)

2015年(5)

2014年(108)

2013年(30)

我的朋友

分类: C/C++

2014-01-04 22:44:52


总体效果如下图

1.工程.pro文件代码


点击(此处)折叠或打开

  1. QT +=widgets

  2. SOURCES += \
  3.     main.cpp \
  4.     draw.cpp

  5. HEADERS += \
  6.     draw.h
2.  draw.h文件代码

点击(此处)折叠或打开

  1. #ifndef DRAW_H
  2. #define DRAW_H
  3. #include<QPainter>
  4. #include<QtWidgets>
  5. #include<QtWidgets/QApplication>
  6. class draw:public QWidget
  7. {
  8. public:
  9.      draw();
  10. private:
  11.    void paintEvent(QPaintEvent*);
  12.     QPainter *paint;

  13. };
  14. #endif // DRAW_H
3  draw.cpp文件

点击(此处)折叠或打开

  1. #include<draw.h>
  2. void draw::paintEvent(QPaintEvent*)//paintEvent函数由系统自动调用,用不着我们人为的去调用。

  3. {
  4.     int i;
  5.     paint=new QPainter;
  6.     paint->begin(this);

  7.     paint->setPen(QPen(Qt::black,4,Qt::SolidLine));//设置画笔
  8.     paint->setBrush(QBrush(Qt::green,Qt::SolidPattern));//设置画刷
  9.     paint->drawRect(20,20,160,160);//前两个表示起始点坐标,后两个表示高和宽

  10.     paint->setPen(QPen(Qt::black,2,Qt::SolidLine));
  11.     for(i=2;i<=8;i++)
  12.     {
  13.       paint->drawLine(20*i,20,20*i,180);//画直线,前两个点表示起始点xy坐标,后两个表示结尾点xy坐标
  14.       paint->drawLine(20,20*i,180,20*i);
  15.     }
  16.          paint->setBrush(QBrush(Qt::blue,Qt::SolidPattern));

  17.            paint->drawEllipse(80,80,20,20);//画椭圆,圆或椭圆是在矩形中,这个矩形的左上角的顶点在坐标轴中的位置为(80,80),这个圆或椭圆的中心为这个矩形的中心

  18.            paint->drawEllipse(100,100,20,20);



  19.            paint->setBrush(QBrush(Qt::red,Qt::SolidPattern));

  20.            paint->drawEllipse(100,80,20,20);

  21.            paint->drawEllipse(80,100,20,20);
  22.            paint->end();
  23. }
  24. draw::draw()
  25. {
  26.     setGeometry(100,100,200,200);//从屏幕上(100,100)位置开始(即为最左上角的点),显示一个200*200的界面(宽200,高200)
  27. }
4.  main.cpp 文件

点击(此处)折叠或打开

  1. #include<draw.h>

  2. #include<QApplication>
  3. int main(int argc,char **argv)

  4. {

  5.        QApplication a(argc,argv);

  6.        draw w;

  7.        w.show();

  8.        return a.exec();

  9. }

阅读(3358) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~