QT笔记 -- (5) 实现QWidget的paintEvent函数,在widget上画背景图形

如图,想在界面上画个弧线和直线,于是继承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()
{
}
QT笔记 -- (5) 实现QWidget的paintEvent函数,在widget上画背景图形的更多相关文章
- wxWidgets学习笔记——在屏幕上画简单的图形和文字
在屏幕上画简单图形和显示图片.处理简单鼠标键盘事件 /*************************************************************** * Name: M ...
- QT笔记之实现阴影窗口
方法一: 代码实现 在窗口构造函数中加入:setAttribute(Qt::WA_TranslucentBackground),保证不被绘制上的部分透明 重写void paintEvent(QPain ...
- Qt笔记——绘图(QBitmap,QPixmap,QImage,QPicture)
QPainter绘图 重写绘图事件,虚函数 如果窗口绘图,必须放在绘图事件里实现 绘图事件内部自动调用,窗口需要重绘的时候,状态改变 绘图设备(QPixmap,QImage,QBitmap,QPict ...
- 【Qt开发】Qt在QLabel(QWidget)鼠标绘制直线和矩形框
原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://devbean.blog.51cto.com/448512/243546 说实话, ...
- QT中QMainWindow、QWidget、QDialog
QT中QMainWindow.QWidget.QDialog 简述 在分享所有基础知识之前,很有必要在这里介绍下常用的窗口-QWidget.QDialog.QMainWindow. 熟悉Qt的同学都应 ...
- Qt笔记之使用设计器自定义窗口标题栏
1.在窗口显示之前,设置WindowFlags为FramelessWindowHint,以产生一个没有边界的窗口 例如 Widget::Widget(QWidget *parent) : QWidge ...
- MYSQL学习笔记三:日期和时间函数
MYSQL学习笔记三:日期和时间函数 1. 获取当前日期的函数和获取当前时间的函数 /*获取当前日期的函数和获取当前时间的函数.将日期以'YYYY-MM-DD'或者'YYYYMMDD'格式返回 */ ...
- Qt Windows下链接子系统与入口函数(终结版)(可同时存在main和WinMain函数)
Qt Windows下链接子系统与入口函数(终结版) 转载自:http://blog.csdn.net/dbzhang800/article/details/6358996 能力所限,本讨论仅局限于M ...
- C++ Primer学习笔记(三) C++中函数是一种类型!!!
C++中函数是一种类型!C++中函数是一种类型!C++中函数是一种类型! 函数名就是变量!函数名就是变量!函数名就是变量! (---20160618最新消息,函数名不是变量名...囧) (---201 ...
随机推荐
- spring事务,TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
在aop配置事务控制或注解式控制事务中,try...catch...会使事务失效,可在catch中抛出运行时异常throw new RuntimeException(e)或者手动回滚Transacti ...
- Microsoft Edge 首个 Chromium 内核版释出
翻译功能释出 navigator.userAgent"Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, ...
- 敬请关注 Linr 公众号
- 在IIS 10中注册自定义的IHttpModule
环境:Visual Studio 2015, IIS Express 10, ASP.NET 4.5 演示代码:http://files.cnblogs.com/files/joe-yang/Rewr ...
- 一个helloword hibernate配置以及查询
搭建一个Hibernate环境,开发步骤: 1. 下载源码 版本:hibernate-distribution-3.6.0.Final 2. 引入jar文件 hibernate3.jar核心 + ...
- multiple definition of
总结了解决multiple definition of的方法: 问题原因: 当多个文件包含同一个头文件时,并且你的.H里面没有加上条件编译#ifndef TEST_H#define TEST_H ...
- 一个学习scrapy的网站
当然是scrapy中文网辣,从浅到深,例子报错几乎都有 http://www.scrapyd.cn/doc/
- java的反射机制(重要)
1,反射的概念 JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法和属性:这种动态获取的信息以及动态调用对象的方法的功能称为 ...
- POJ2142 The Balance (扩展欧几里德)
本文为博主原创文章,欢迎转载,请注明出处 www.cnblogs.com/yangyaojia The Balance 题目大意 你有一个天平(天平左右两边都可以放砝码)与重量为a,b(1<= ...
- ASP.NET-常用插件集合
001.输入表单验证插件FluentValidation ( 这个组建可以直接验证实体类,达到和验证model相同的效果,如果类很少可以直接使用这个省去model) https://github.co ...