如图,想在界面上画个弧线和直线,于是继承QWidget得到类MainContainer,并实现了paintEvent函数。然后用类MainContainer定义centralWidget。

MainContainer.h

#pragma once
#include "qwidget.h"
#include <QPainter> class MainContainer : public QWidget{
Q_OBJECT
public:
MainContainer(QWidget *parent = ) :QWidget(parent){};
~MainContainer();
void addGeometry(int type,QRectF rect){
if (type == ) arcList.push_back(rect);
else if (type == ) rectList.push_back(rect);
}
private:
QPainter *painter;
std::vector<QRectF> rectList;
std::vector<QRectF> arcList;
void paintEvent(QPaintEvent*){
painter = new QPainter;
painter->begin(this);
painter->setPen(QPen(Qt::green,2,Qt::DashLine));
//painter->setBrush(QBrush(Qt::red,Qt::SolidPattern));
for (auto rect : arcList){
painter->drawArc(rect, 30*16, 120*16);
}
for (auto rect : rectList){
painter->drawRoundRect(rect);
}
painter->end();
};
};

MainContainer.cpp

#include "MainContainer.h"

MainContainer::~MainContainer()
{
}

最新文章

  1. 更新整理本人所有博文中提供的代码与工具(Java,2014.01)
  2. Ubuntu 更新源失败[GPG error]
  3. linux下如何打包压缩?解包解压?.tar文件.gz文件
  4. 关于fill_parent,match_parent和wrap_content (转载)
  5. Windows下MinGW编译Qt4
  6. php中使用end方法报错
  7. Amarino例程无法使用的问题
  8. vim编程 插入 保存不退出 保存退出 退出不保存 另存为其他文件名 保存覆盖现有文件
  9. Java操作图片的工具类
  10. ubuntu 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
  11. 菜鸟玩云计算之十六:Ubuntu14.04上创建的虚拟机迁移到RHEL6.4
  12. Linux操作系统学习_操作系统是如何工作的
  13. Bash shell 的算术运算有四种方式
  14. scanf后面跟一个getchar
  15. jquery 获取jquery对象的标签类型
  16. 背包九讲PDF
  17. MarkDown语法总结
  18. eclipse IDE使用git方法简单介绍
  19. h5设计图尺寸
  20. 将&quot;a&quot;标签当bunton使用

热门文章

  1. FluentAPI关系映射配置
  2. Java基础——选择排序、冒泡排序
  3. SpringBoot(七) SpringBoot中的缓存机制
  4. 初学C#,总结一下.sln和.csproj的区别
  5. The Vertica Analytic Database:C-Store 7 Years Later笔记
  6. Linux内核分析笔记
  7. innobackupex: Error: --decompress requires qpress
  8. 21_HTML&amp;CSS
  9. Python的流程控制
  10. HDU 2095 find your present (2)( 位运算 )