自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

xiyangxiaoguo的博客

世界构筑于一点一滴

  • 博客(70)
  • 资源 (1)
  • 收藏
  • 关注

原创 使用QuickReporter将多张图片插入在word多行的表格中

他有大量的图片需要插入在word里面,他的想法是将图片放在一个文件夹内,按编号1,2,3,...编号,然后自动将这些图片从前到后插入到表格中。这次偶然发现了该需求是可以实现的,且在当前版本V1.0.3是可以通过的。设置的工作目录下放着一个文件夹:图片,其中放着两张图片1.png和2.png。这次整理好了模板的用例,这里将实现方法展示出来,供各位用户参考。图片的尺寸通过数据文件xzy.xlsx中的图片属性去更改。以上表格为任务表格task.xlsx,内容简单。以上用例可供大家参考。以上为产生的结果文档。

2025-03-27 07:47:44 430

原创 高清绘画素材3600多张动漫线稿线描上色练习参考插画原画

怎样画线稿

2025-01-07 21:15:03 337 1

原创 QComboBox中使用树形控件进行选择

/在这里设置时,无法过滤MouseButtonRelease事件。事情是这样的,要在一个ComboBox中通过树形结构进行内容的选择。默认的QComboBox展开是下拉的列表。点击树中的任何item,树都会收起来,然后关闭掉。实现上面效果的核心代码就是下面这样的。这不是想要的效果,想要的效果是,

2024-12-30 20:51:47 989

原创 使用visnode做节点管理

它的核心想法就是把每一个历史版本的东西变成一个节点node,然后节点和节点之间的变化关系用箭头来展示。每一个节点都是基于它的上一级节点做变化,当发生变化的方向变多之后,整体就呈现了一个树状。当然这种思想多少是借鉴了伟大的版本管理工具git。每个节点可以记录一个文件夹地址,当双击这个节点时,就可以打开这个文件夹。每个节点还可以添加备注信息,去描述这个节点有一些什么特征,用了一些什么样的参数,总之就是可以做一些文字批注。然后通过设置简单明了的名字去标记这个节点。

2024-12-21 17:31:50 287

原创 Qt 图形框架下图形拖动后位置跳动问题

图形框架需要通过QGraphicsItem::mouseReleaseEvent(event)来处理图形拖动后的位置信息,如果在重写后的mouseReleaseEvent方法后不去调用父类的方法,这些需要框架去处理的事情就会得不到正确处理。现象是将图形添加到画布上之后,用鼠标拖动图形,图形能正常改变位置,当再次用鼠标点击图形移动时,图形会自动跳动到初始化的位置,并且画布上其他的图形也会在拖动时自动跳动到意外的位置。使用的图形是自定义的QGraphicsObject的子类。而且其他图形的位置也会发生错误。

2024-12-12 21:33:18 483

原创 使用 QuickReporter 实现 word报告批量自动生成

那么它就会产生多个word报告文档,第一个word报告文档中的标题内容是 A公司调研报告;第二个word报告文档中的标题内容是 B公司调研报告;你所要做的最重要的事情,就是去造好你的报告模板,按照指定的规则,但是这个规则也相当简单,就是用 {{}}这样的符号把你要替换的地方标记起来。你给准备一个标记好的报告模板,然后把你的数据和模板放在一个目录下,然后执行,就可以批量生成报告。有时候我们需要利用一个报告样本,根据不同的数据去生成不同的报告文档。有时候我们需要生成很多个内容基本相似,数据不同的报告文档。

2024-12-07 19:09:20 604

原创 HDF5文件浏览软件--H5View

H5View是一款轻量级桌面软件,旨在提供用户友好的界面以读取和展示 HDF5 文件中的数据结构。该软件允许用户查看文件的数据目录和数据集,并支持将选定的数据集导出为多种格式。

2024-09-27 22:11:53 1187 3

原创 Qt Drag&Drop拖动与放置

本文章从属于系列拖放操作包括两个动作:拖动(drag)和放下(drop或称为放置)。

2023-11-14 15:15:45 2917

原创 Qt 自定义event

在某些情况下,可能需要通过事件携带一些额外的数据可以通过自定义事件类来完成一种实现方法是自定义一个QObject的子类,通过property来携带数据Q_OBJECTpublic:这里通过一个自定义的窗口来发送自定义的事件,通过 QApplication::sendEvent(parent,evn);将事件传递给它的父窗口//sendEvent阻塞式发送信号//发出去的信号需要接收者通过event()进行处理});

2023-11-13 14:53:47 504

原创 Qt QTableWidget表格的宽度

通过setStretchLastSection可以将表格最后一列设置始终填满父窗口,这样当父窗口更改尺寸时,最后一列会动态更改宽度。这种情况可以友好应对某些列数据固定很短,有些列数据长度变化,而且可能较长。使得第0,2列宽度固定,第1,3列宽度可以伸缩。其中resize mode总共有如下几种设置。填充满父窗口,可以通过设置。

2023-11-10 19:48:22 1990

原创 Qt Creator插件

这里以Qt Creator 4.15.2版本的源码为示例进行分析源码结构如下,为了追溯其插件加载过程,从main.cpp入手Qt Creator的插件目录,生成的插件,好几十个呢。

2023-11-07 14:19:50 614

原创 QComboBox的信号

而且下拉框的setCurrentIndex()方法设置一个当前正处于的序号是不会发出currentIndexChanged信号的。QComboBox::activated信号发射在用户打开选择了选项后,即便选项与当前选项一致,也会发射该信号。这两个信号的发射顺序为,先QComboBox::currentIndexChanged。这里会有下拉框1改变导致下拉框2改变,下拉框2改变再导致下拉框1改变的死循环吗?不会造成死循环的原因在于两个下拉框的下拉项数码一致,而且每次关联后的序号也一致。

2023-11-06 14:27:15 2893

原创 QTableWidget单元格相关信号

(1)主要有 cellChanged,cellActivated,cellClicked,cellDoubleClicked,cellEntered,cellPressed以及相应的item类信号。通过一段代码详细说明QTableWidget的单元格被点击(包括单击和双击)以及内容被编辑时,发出的相关信号。通过以下代码,详尽地探索了,点击一个单元格,到点击另外一个单元格之间,到底Qt背后做了哪些事情。(2)各个信号发出的时机。(3)信号发出的先后。

2023-11-06 13:38:55 2956

原创 Qt窗体自动销毁

Qt中通过对象树的方式,实现了窗体自动析构,只要我们使用得当,就能免去自己去释放窗体对象的内存,但是我们得清楚Qt窗体自动析构的机制,什么情况下能够自动析构,什么情况不能。操作不当的情况可能造成内存泄漏,甚至会出现程序崩溃问题。下面通过一系列示例进行探究。

2023-11-06 11:27:41 799

原创 Qt 表格QTableWidget

以下是一个示例,通过实现一个QStyledItemDelegate的子类,来提供自定义的表格代理控件,然后在表格中设置该代理。最终实现的效果就是双击表格第一列的单元格都会在单元格内创建下拉框编辑控件,并且在交互完成后控件内的值会同步到表格中。如果要实现表格的不同列的编辑控件不一样,比如有的通过下拉框编辑,有的通过拨轮编辑,就可以通过在ItemDelegate的createEditor方法中去创建这些不同的控件。

2023-11-03 18:29:25 277

原创 Qt 信号与槽

先看原始的代码,目标是想实现把原有界面上的一堆控件同时也显示到另外一个表格中,因此才有创建一堆新的控件,并且将新的控件和原控件做同步,然后将新的控件放入到表格中。实现的理想效果时,操作原来的控件时,表格中的新控件得到同步;每次点击表头,表格中的所有控件将被替换为新的控件,那么原来的控件自然是要销毁掉(这里是Qt的特性,当控件从表格中删除,被销毁时,理论上它所有相关的信号--槽连接也应该被删除掉。旧的销毁掉,换成新的,不应该有问题。当点击表格的表头,使得表格中的控件被重新更新后,再去操作控件,程序崩溃。

2023-11-03 18:27:39 505

原创 Qt实验室

本系列文章是研究和记录Qt开发过程中遇到的各种问题的集合由于Qt是一个庞大的开发体系,很难用有限的文案对其做全面深入细致的讲解,因此市面上大多数Qt开发相关的教程都显得极其粗浅入门,通常只能作为最基本的入门教程。但是实际项目开发中往往会遇到很多疑难问题,翻阅这些开发教程却又找不到对应解答。实际项目的复杂度往往远高于教程上所给的一些简单demo,甚至也远比Qt Creator中自带的教学例程。所以,Qt入门简单,但是要做出很棒的软件出来,依然是非常具有挑战性的事情。纸上得来终觉浅,绝知此事要躬行。

2023-11-02 19:44:21 344

原创 Qt 窗口的尺寸

更改后会发现,当隐藏完所有的子窗体后,所有的按钮被均匀布局在了主窗体,如果想要的效果是按钮从主窗体从上往下紧密排列,可以在layout添加完所有的控件和窗口后,添加一个stretch,即在this->setCentralWidget(contentArea);第一个this->size()输出QSize(640, 480),即MainWindow具有默认的尺寸640*480。对于一个Qt的窗口(继承于QWidget),获取其窗体尺寸的方法size();而connect()方法中的三个打印对应的值则分别为。

2023-10-25 16:49:01 5137

原创 Qt C++实现Excel表格的公式计算

用Qt的QTableView+QStandardItemModel+QStyledItemDelegate实现类似Excel表格的界面,在parser 模块中提供解析表格单元格输入的公式。支持的公式计算可以深度嵌套,目前parser模块中仅提供了+-*/^运算和类似Excel的sum, power函数,其他需要的函数可以自行参考现有的设计去添加,在现有的设计下添加起来也非常容易。输入:=1+A1/2+sum(1,1,sum(A1,2,power(A1,3)))/power(A2,2)

2023-07-27 16:31:07 1099

原创 Qt 无边框软件框架

本文介绍了一个基于Qt的无边框界面的设计,界面主要拆分为左中右三部分,五个窗口的设计。界面风格定义在一个qss文件内,包括颜色风格和控件响应。界面设计具有较好的完成度,可以作为一些小型项目的基础设计,拿来即用,也可作为很好的学习参考资源。

2023-06-19 09:00:00 165

原创 Qt 控件设计-进度控制类

本文介绍了几种常用的进度条控件的设计,控件设计类型丰富,拿来即用,或者稍加修改实现自己的效果。

2023-06-18 21:44:10 154

原创 word文档-样例1-结果文档

2023-04-29 20:58:27 281

原创 word文档-样例1-模板文档

2023-04-29 20:56:18 377

原创 全网最强word报告批量自动生成软件QuickReporter!基于模板替换的word文档自动生成

word文档自动生成程序是一个根据用户提供的模板word文档以及一些必要的数据文件来渲染生成所要的word文档的工具。

2023-04-29 12:00:00 6063 8

原创 QGuiApplication::font(): no QGuiApplication instance and no application font set.

这个问题的出现是因为在使用matplotlib时,需要一个GUI环境,而在没有调用QGuiApplication之前调用了matplotlib,导致抛出该异常。即Class B 的 def __init__(self,fig=A()) -> None: 中的 fig=A() 对象产生于 import b 的时候。python 函数默认值如果是可变类型,那么其实例将只有一个,即无论 B()调用几次,其fig的默认值都是同一个 A()。在使用matplotlib之前,将下面的语句插入到程序中,并先执行该语句。

2023-03-24 14:34:32 837

原创 python 操作word库docx 增强接口

python docx操作word 复制段落,插入带格式的段落,插入题注,交叉引用题注,在指定文字后面插入内容

2023-03-04 21:56:45 1261 1

原创 Qt C++ 自定义仪表盘控件03

仪表盘是工控领域不可缺少的一类软件UI元素,通常出现在各类电子看板软件上,以及一些高级的上位机软件界面上,目的是将繁杂的数据转化为可视化的图表能大幅提高后台管理效率。本文分享了几个经典常用的仪表盘控件,在项目中可以拿来即用。由于源码较为精简,初次做Qt开发的伙伴们,也可以拿来源码学习学习,做一些简单的修改即可实现更多自定义的效果。参考这几个仪表盘的源码和设计,基本上可以触类旁通,实现其他的仪表盘风格。

2023-02-21 09:02:58 3065

原创 Qt C++ 自定义仪表盘控件02

仪表盘是工控领域不可缺少的一类软件UI元素,通常出现在各类电子看板软件上,以及一些高级的上位机软件界面上,目的是将繁杂的数据转化为可视化的图表能大幅提高后台管理效率。本文分享了几个经典常用的仪表盘控件,在项目中可以拿来即用。由于源码较为精简,初次做Qt开发的伙伴们,也可以拿来源码学习学习,做一些简单的修改即可实现更多自定义的效果。参考这几个仪表盘的源码和设计,基本上可以触类旁通,实现其他的仪表盘风格。

2023-02-11 15:40:37 4867 2

原创 Qt 自定义仪表盘控件

仪表盘是工控领域不可缺少的一类软件UI元素,通常出现在各类电子看板软件上,以及一些高级的上位机软件界面上,目的是将繁杂的数据转化为可视化的图表能大幅提高后台管理效率。本文分享了几个经典常用的仪表盘控件,在项目中可以拿来即用。由于源码较为精简,初次做Qt开发的伙伴们,也可以拿来源码学习学习,做一些简单的修改即可实现更多自定义的效果。参考这几个仪表盘的源码和设计,基本上可以触类旁通,实现其他的仪表盘风格。

2023-02-08 21:48:47 3788 3

原创 matlab复杂函数多元函数拟合

本文介绍了一个具有3个变量,14个参数的复杂多元函数的拟合实现,通过matlab的lsqnonlin方法实现,并分享了一些拟合的技巧心得。中间过程的脚本和数据,以及心得技巧在此分享给有需要的人,共勉链接:https://pan.baidu.com/s/1JO2DFQ5b1AP0GGtFErn19w?pwd=ptty提取码:ptty。

2023-01-05 20:53:58 24610 6

原创 Qt基于QGraphicsItem的自定义复杂图形绘制以及交互响应

简介本文介绍了 QGraphicsItem用于绘制自定义图形的使用方法,以及图形对于鼠标悬浮和点击选择时的响应实现。效果下图左右两个图形分别为鼠标未选中和选中时的效果,选中时,图形边框颜色加深,以及鼠标在三角形上悬浮时,它的颜色转换为绿色。图形可以拖动,可以响应鼠标的悬浮和单击事件。总结本文的方法可以用于Qt创建流程图程序等图形化的交互程序,实现自定义的图形绘制,与用户的交互等。 源码链接:https://pan.baidu.com/s/1_2l4HCb3RbZDgvAa3HLP_w?pwd=ptty 提

2022-12-04 17:31:01 1155

原创 Qt 之 自定义按钮 在鼠标 悬浮、按下、松开后的效果--三种实现方式

简介本文介绍了Qt中的按钮实现响应鼠标悬浮、按下、松开后的效果,在三种状态下,按钮改变不同的背景图片。方式1:通过设置setStyleSheet的方式去实现;方式2:通过继承QPushButton去实现一个自定义的按钮;方式3:在主界面中给按钮安装事件过滤器的方式去实现程序方式1:通过设置setStyleSheet的方式去实现; 方式2:通过继承QPushButton去实现一个自定义的按钮;继承QPushButton类后,重写了event()方法方式3:在主界面中给按钮安装事件过滤器的方式去实现

2022-12-03 20:43:58 7648

原创 Qt QGraphicsItem 带有子图标的图形示例

简介本文介绍了一个用Qt QGraphicsItem作为基类实现的带有子图标的图形项,子图标可以独立响应鼠标悬浮事件和鼠标点击事件,该方法可用于设计具有复杂UI响应的图标。程序目录HoverChangeButton.h/HoverChangeButton.cpp是该图形类main.cpp用于在 QGraphicsScene/ QGraphicsView中对该图标功能进行测试效果展示 以上图从左到右分别为鼠标未悬浮,鼠标悬浮,鼠标单击后的效果 总结通过继承QGraphicsItem并且重写部分鼠标响应函数,

2022-12-03 19:13:22 275 1

原创 迷宫生成程序

迷宫生成算法

2022-10-22 23:19:41 315

原创 linux网络编程-epoll多路复用

client.cpp -->clientserver.cpp -->server在server中使用epoll来进行多路复用client.cpp#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <string>#include <unistd.h>#include <net.

2021-12-04 02:28:17 919

原创 linux网络编程-多client多server一个watcher

当有多个server需要启动,或者server动态的启停,需要用一个watcher来对它们进行管理,当有client要连接到server时,先连接到watcher去查询可用的server 。(1)watcher启动后在两个线程内分别监听server的连接和client的连接(2)watcher将连接上来的server记录下来,当有client连接上来后,将可用的server的端口告知给client(3)接下来client再去连接serverV1实现了最基本的client-watche

2021-12-03 23:59:56 1429

原创 linux网络编程-多client多server一个watcher

client.cpp-->clientserver.cpp-->serverwatcher.cpp+server.h-->watcherclient.cpp#include <stdlib.h>#include <stdio.h>#include <errno.h>#include <string.h>#include <string>#include <unistd.h>#inclu

2021-12-03 23:49:47 388

原创 C++ 网络编程 TCP 用select实现的并发 异步

https://blog.youkuaiyun.com/xiyangxiaoguo/article/details/107179169上一篇采用的是建立新的线程的方法去处理一个新的客户端到服务器的TCP连接,对于少量的客户端连接到服务器这种方法不存在问题,这种方式带来一个问题就是,每一个链接都要开辟一个新的线程,数量少时还可以,当数量上亿时就不合适了,另外,这个很多时候这个链接也没有数据读取,那么这个线程一直运行也会浪费CPU,总之这种方式有局限性。采取的替代方法是用select实现异步非阻塞的网络连接S.

2020-07-08 17:56:15 3158

原创 C++ TCP网络编程 send 和recv分析【测试记录】

客户端程序:#include <winsock.h> #include<iostream>#pragma comment(lib,"ws2_32.lib") #include <Windows.h>#include<string>int main(){ //初始化Windows Socket Application WORD sockVersion = MAKEWORD(2, 2); WSADATA wsaData; //Win

2020-07-07 16:42:52 2351

原创 C++ TCP 客户端发送大量数据,服务器来不及接收【一次详细的测试记录及分析】

如果客户端发送数据的速度远远大于服务器接收数据的速度,那么-->客户端程序:#include <winsock.h> #include<iostream>#pragma comment(lib,"ws2_32.lib") #include <Windows.h>#include<string>int main(){ //初始化Windows Socket Application WORD sockVersion = MAK.

2020-07-07 14:42:51 5067 1

Qt 实现进度仪表盘样式

Qt 实现的进度仪表盘样式,可以动态显示当前加载的进度,界面交互灵活

2022-05-20

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除