QT笔记 -- (5) 实现QWidget的paintEvent函数,在widget上画背景图形
2024-10-01 12:47:24
如图,想在界面上画个弧线和直线,于是继承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()
{
}
最新文章
- 更新整理本人所有博文中提供的代码与工具(Java,2014.01)
- Ubuntu 更新源失败[GPG error]
- linux下如何打包压缩?解包解压?.tar文件.gz文件
- 关于fill_parent,match_parent和wrap_content (转载)
- Windows下MinGW编译Qt4
- php中使用end方法报错
- Amarino例程无法使用的问题
- vim编程 插入 保存不退出 保存退出 退出不保存 另存为其他文件名 保存覆盖现有文件
- Java操作图片的工具类
- ubuntu 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用)
- 菜鸟玩云计算之十六:Ubuntu14.04上创建的虚拟机迁移到RHEL6.4
- Linux操作系统学习_操作系统是如何工作的
- Bash shell 的算术运算有四种方式
- scanf后面跟一个getchar
- jquery 获取jquery对象的标签类型
- 背包九讲PDF
- MarkDown语法总结
- eclipse IDE使用git方法简单介绍
- h5设计图尺寸
- 将";a";标签当bunton使用
热门文章
- FluentAPI关系映射配置
- Java基础——选择排序、冒泡排序
- SpringBoot(七) SpringBoot中的缓存机制
- 初学C#,总结一下.sln和.csproj的区别
- The Vertica Analytic Database:C-Store 7 Years Later笔记
- Linux内核分析笔记
- innobackupex: Error: --decompress requires qpress
- 21_HTML&;CSS
- Python的流程控制
- HDU 2095 find your present (2)( 位运算 )