qt在窗口的子部件中绘制矩形

引言

在窗口中绘制矩形,只需重写paintEvent()函数,在重回函数中实现绘制矩形便可。但在窗口的某一个子部件中实现绘制矩形,此时就需重写事件过滤函数,在指定的子部件的绘图事件实现绘制矩形。

结构

窗口部件的组成如下图,现需在子部件widget中实现绘制矩形。
在这里插入图片描述

实现

重写事件过滤,在指定电子部件的绘图事件下实现绘制矩形。
首先安装事件过滤器
在构造函数中添加具体控件安装事件过滤器。

 ui->widget->installEventFilter(this);ui->backWidget->installEventFilter(this);

重写事件过滤函数,在事件过滤函数中实现在子控件中的绘制矩形操作。

bool LayoutShowForm::eventFilter(QObject *watched, QEvent *event)
{if (watched == ui->widget && event->type() == QEvent::Paint) {paintLayout(ui->widget);return true;}else if (watched == ui->backWidget && event->type() == QEvent::Paint) {paintLayoutPreBoardLine(ui->backWidget);return true;}return false;
}
void LayoutShowForm::paintLayout(QWidget *widget)
{QPainter painter(widget);QPen pen;pen.setBrush(QBrush(QColor(255,255,255,255)));painter.setPen(pen);QBrush brush(QColor(104,216,204,255));painter.setBrush(brush);for (int i = 0; i < m_layoutInfo.size(); ++i) {painter.drawRect(QRect(m_layoutInfo[i].x,m_layoutInfo[i].y,m_layoutInfo[i].width,m_layoutInfo[i].height));}}

上述截取部分代码,读者只需看懂思路便可,后面两个函数是具体的绘制功能,与当时业务有关,读者自行编写自己的绘制函数。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/524000.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Centos7 Docker 删除容器_入门试炼08

说明命令删除指定的容器格式docker rm $CONTAINER_ID/NAME删除容器指定容器名称docker rm mycentos3删除容器指定容器iddocker rm 90913daea673 注意&#xff0c;只能删除停止的容器 效果图&#xff1a; #删除所有容器 docker rm docker ps -a -q删除所有容器的原理&#xff…

Spark精华问答:DataFrame与RDD的主要区别在哪?

Apache Spark 是专为大规模数据处理而设计的快速通用的计算引擎。目前的热度已经超过Hadoop,正所谓青出于蓝而胜于蓝&#xff0c;今天我们就来看看关于park 的精华问答吧。1Q&#xff1a;DataFrame是什么?A&#xff1a;DataFrame是一种以RDD为基础的分布式数据集&#xff0c;类…

qt的项目中单个文件加载样式表

引言 编写一个项目后&#xff0c;通过加载样式表来设置项目中的所有控件的样式&#xff0c;我之前习惯的是在main.cpp文件中加载一个样式表&#xff0c;该样式表含有程序中所有控件的样式&#xff0c;也就是整个程序只需要加载一遍样式文件。但是多人开发时&#xff0c;不合理…

Centos7 使用Docker MySQL部署_01

文章目录Docker MySQL部署Docker MySQL部署 #1.拉取mysql镜像 docker pull mysql #2.查看拉取的mysql镜像 docker images#3.创建MySQL容器 docker run -di --name ly_mysql -p 3306:3306 -e MYSQL_ROOT_PASSWORD123456 mysql注&#xff1a;-p 代表端口映射&#xff0c;格式为 …

“自带大屏”的便利店,你见过吗?

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01; 平常&#xff0c;便利店倒是见过很多&#xff0c;但是“自带大屏”的便利店&#xf…

Centos7 使用Docker 部署Tomca+mysql+调试联通_02

文章目录一、Tomcat部署1. 拉取tomcat镜像2. 上传cas项目3. 修改cas系统的配置文件4. 创建tomcat容器5. 浏览器测试部署的web应用6. 输入账号密码测试mysql连接7. 访问注销接口测试一、Tomcat部署 1. 拉取tomcat镜像 docker pull tomcat:7-jre7注&#xff1a;拉取tomcat镜像&…

qt创建右键菜单,显示在鼠标点击处

引言 给窗口创建右键菜单&#xff0c;右键的时候&#xff0c;右键菜单出现在鼠标点击处。同时设置右键菜单的样式&#xff0c;右键菜单为圆角&#xff0c;起初设置样式的时候&#xff0c;右键菜单的背景在圆角边缘会出现黑色的方角&#xff0c;不能很好的显示为圆角&#xff0…

无剧透 | 分析《复联》英雄得出的结论:什么样的技术人适合做管理?

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;转自&#xff1a;技术领导力作者&#xff1a;力小哥/技术领导力社区特约撰稿人4月24日…

Centos7 使用Docker 部署Nginx+mysql+tomcat+调试联通_03

文章目录Nginx部署1. 拉取Nginx镜像2. 创建Nginx容器3. 测试Nginx4. 配置反向代理5. 浏览器nginx容器和tomcat容器联通测试6. 浏览器tomcat容器和mysql容器联通测试7. 浏览器注销接口测试Nginx部署 1. 拉取Nginx镜像 docker pull nginx2. 创建Nginx容器 docker run -di --na…

qt种实现搜索栏功能

引言 在搜索栏种输入要搜索的文本&#xff0c;就会出现相关联的文本提示&#xff0c;这是可以通过鼠标选中要搜索的文本&#xff0c;或者通过上下键选中要搜索的文本。 效果 效果图如下所示&#xff1a; 实现 下面是相关的代码实现&#xff0c;读者只需参考&#xff0c;理解…

Docker Redis部署_04

Docker Redis部署部署 1. 拉取Redis镜像2. 创建Redis容器3. 客户端测试 1. 拉取Redis镜像 docker pull redis2. 创建Redis容器 docker run -di --namepinyougou_redis -p 6379:6379 redis查看redis容器是否已经运行&#xff1a; docker ps3. 客户端测试 在你的本地电脑命令提…

关于谷歌云,你应该知道的一切! | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;译者&#xff1a;风车云马 在国内,“谷歌云”这个词并不像“亚马逊AWS”、“微软Azure…

qt构建json字符串的时候,某一个值为字符串

引言 构建json字符串的值时&#xff0c;其值为一个json对象组成的字符串。下面记录一下。 实现 直接上代码来说明问题。 QJsonDocument subDoc;subDoc.setObject(subObject);QByteArray array subDoc.toJson(QJsonDocument::Compact);QString customValue array; …

Docker 容器导出为镜像

Docker 镜像备份与迁移 1. 容器保存为镜像2. 镜像备份3. 镜像恢复与迁移 1. 容器保存为镜像 我们可以通过以下命令将容器保存为镜像 docker commit pinyougou_nginx mynginxpinyougou_nginx是容器名称mynginx是新的镜像名称 pinyougou_nginx容器已经成功保存为mynginx镜像&…

qt动态添加窗口到垂直布局

引言 程序运行的过程中根据需要动态的创建窗口&#xff0c;每创建一个窗口&#xff0c;就加入列表中&#xff0c;使其竖直展示各个窗口。这样的操作实际是每创建一个窗口&#xff0c;就将其加入到垂直布局中&#xff0c;当点击不同的窗口时能够实现对被点击窗口的区分&#xf…

Storm精华问答 | Kafka在Storm中的角色是什么?

戳蓝字“CSDN云计算”关注我们哦&#xff01;Storm是Twitter开源的分布式实时大数据处理框架&#xff0c;被业界称为实时版Hadoop。随着越来越多的场景对Hadoop的MapReduce高延迟无法容忍&#xff0c;比如网站统计、推荐系统、预警系统、金融系统等&#xff0c; 大数据实时处理…

SonarQube开机自启动

1、创建服务 vi /etc/init.d/sonar内容如下&#xff0c;其中标红内容为服务绝对路径&#xff1a; #!/bin/sh # # rc file for SonarQube # # chkconfig: 345 96 10 # description:SonarQube system (www.sonarsource.org) # ### BEGIN INIT INFO # Provides:…

qt通过代码创建滚动区域,添加滚动区域到窗口

引言 继承于QWidget创建的项目&#xff0c;要想在QWidget中添加很多子控件&#xff0c;考虑到若是子控件的数目不确定&#xff0c;太多的时候就需要添加滚动条来实现滚动查看&#xff0c;于是可以自定义一个类&#xff0c;在该类中实现滚动区域和滚动窗口的创建&#xff0c;然…

SwitchHosts提示切换hosts失败!没有修改'C:\WINDOWS\system32\drivers\etc\hosts'的权限问题

文章目录1. 找到hosts文件2. 右键属性3. 去除只读勾选4. 属性安全编辑5. 点击选择修改和写入即可1. 找到hosts文件 根据将地址粘贴到窗口进行搜索找到"hosts"文件 地址: C:\Windows\System32\drivers\etc2. 右键属性 鼠标放在hosts文件上右键属性 3. 去除只读勾…

使用云原生buildpacks将你的代码转换成Docker Image | 技术头条

戳蓝字“CSDN云计算”关注我们哦&#xff01;技术头条&#xff1a;干货、简洁、多维全面。更多云计算精华知识尽在眼前&#xff0c;get要点、solve难题&#xff0c;统统不在话下&#xff01;当我们在大概七年前将buildpack技术开源的时候&#xff0c;我们就知道这项技术将大大简…