- 博客(82)
- 资源 (13)
- 问答 (2)
- 收藏
- 关注
原创 qwtplot中关于坐标轴的3个概念详解
摘要:Qwt绘图库中坐标轴机制涉及三个核心概念:Scale(刻度范围)决定轴线的数值范围及分割规则;Step(主刻度间隔)指定相邻主刻度间距;Tick(刻度线)是轴上实际绘制的标记线(分主/次刻度)。三者关系为:Scale确定整体范围,Step决定主刻度间距,Tick根据Step计算具体位置。代码示例展示了如何设置轴范围和获取刻度位置。这种机制类似于尺子的刻度系统,Scale对应尺子总长,Step对应大刻度间距,Tick对应实际绘制的刻度线。
2025-09-12 06:56:53
415
原创 ABI vs API 类比
ABI(应用程序二进制接口)是二进制级别的契约,定义了编译后代码在运行时的交互规则,包括函数调用约定、对象内存布局、类型大小等关键细节。与API(源代码级契约)不同,ABI破坏会导致已编译程序崩溃,即使代码仍能编译通过。例如修改结构体成员会引发内存错误。维护ABI稳定性对库开发者至关重要,像Qt就采用PIMPL等技术确保二进制兼容性,避免用户强制重新编译。
2025-08-19 17:42:41
336
原创 如何为SARibbonMainWindow设置合适的窗口标志
摘要:在使用SARibbonMainWindow实现Ribbon风格界面时,建议配合Qt::CustomizeWindowHint标志位,以避免系统默认标题栏与Ribbon自定义标题栏产生冲突。该标志位能禁用系统标题栏按钮,同时可选择性保留窗口边框(Qt::Window)或采用无边框模式(Qt::FramelessWindowHint)。典型组合方式既保证了视觉一致性,又可通过系统边框维持窗口操作功能,是平衡自定义需求与操作体验的最佳实践。需要注意无边框模式下需自行实现窗口拖动等交互逻辑。
2025-08-16 06:50:01
324
原创 How to output information with different color by qDebug
Qt's qDebug() doesn't support colors natively, but you can use ANSI escape sequences to add color in terminals that support them. Define color codes like RED="\033[31m" and RESET="\033[0m", then use qDebug().noquote() to output colored
2025-08-16 06:18:55
421
原创 Qt::AA_DontCreateNativeWidgetSiblings使用注意事项
摘要:Qt中设置Qt::AA_DontCreateNativeWidgetSiblings属性会导致QMdiArea子窗口在切换时异常浮动。该属性会禁止同级widget创建原生窗口,影响QMdiArea的tab管理机制,使窗口脱离tab控制。建议非必要不设置该属性;若必须设置,应避免使用TabbedView模式或子窗口的Qt::Window类型。正确做法取决于具体需求:普通tab模式需保持默认设置,特殊需求时改用子窗口模式。(149字)
2025-08-03 16:22:46
271
原创 关于使用 QGraphicsLineItem 的一个常见陷阱
在Qt的QGraphicsScene框架中,使用QGraphicsLineItem时需区分pos()(全局坐标)与setLine()(局部坐标)两种坐标系。常见错误是误用setLine()来设置全局位置,而实际应通过setPos()控制图元位置并保持pos()为(0,0),仅用setLine()修改局部几何形状。正确做法是:1)始终固定pos()坐标;2)仅通过setLine()调整线段几何;3)通过重写itemChange()拦截位置变化。这样可避免拖动改变pos()导致line()读取错误的问题,确保坐
2025-07-25 06:37:08
236
原创 QGraphicsEllipseItem::setRect使用注意事项
QGraphicsEllipseItem中推荐使用setRect(-r,-r,2r,2r)设置圆形区域,以原点为圆心能使局部坐标中心与图形中心重合,便于后续的变换操作和位置管理。少数特殊场景下才需要采用center.x()-r的写法,但会增加维护难度。最佳实践是将图形中心和局部坐标中心对齐,通过setPos()独立控制场景位置,这样既符合Qt设计理念又简化了坐标计算。
2025-07-22 06:09:28
266
原创 什么是 qobject_cast
摘要:qobject_cast是Qt提供的类型安全指针转换函数,用于在QObject继承体系中进行安全类型转换。它利用Qt元对象系统而非RTTI,比dynamic_cast更适合Qt项目。使用时需确保目标类继承QObject并包含Q_OBJECT宏。转换失败返回nullptr,避免未定义行为。典型应用场景包括信号槽处理、事件过滤等。该函数比inherits+static_cast组合更安全简洁,是Qt开发中处理多态指针转换的首选方式。
2025-07-22 05:44:53
498
原创 QGraphicsItem两个函数boundingRect() 与 shape() 的区别
摘要:boundingRect()和shape()是Qt中处理图元边界检测的两个关键方法。boundingRect()返回轴对齐矩形,用于确定绘图和刷新区域,必须实现且性能高;shape()返回精确路径,用于鼠标交互和碰撞检测,非必须但推荐实现。前者提供粗略但高效的边界判断,后者实现精确的轮廓检测。实际应用中应同时实现两者:boundingRect()保证基础功能,shape()增强交互体验,特别是对于复杂形状或需要精确点击检测的图元。
2025-07-18 06:30:32
373
原创 C++ 友元类和友元函数
友元机制允许类授权外部函数或类访问其私有成员。友元类(friend class)让指定类的所有成员函数都能访问授权类的私有/保护成员;友元函数(friend function)则仅允许特定函数访问。使用时需注意:友元函数需在类内声明,而将其他类的成员函数设为友元时需先完整定义该类。友元虽会破坏封装性,但在类间紧密协作(如Qt设计)、运算符重载或实现Pimpl模式时非常有用。典型应用场景包括跨类数据共享和特定功能授权访问。
2025-07-12 06:22:23
362
原创 C++虚函数定义规范
摘要:虚函数是C++实现多态的核心机制,通过virtual关键字声明。C++11引入的override和final说明符增强了安全性:override确保正确重写基类虚函数,final禁止进一步重写。最佳实践包括:为多态基类声明虚析构函数、优先使用override、谨慎使用final。示例展示了从抽象基类Shape到具体派生类Circle的虚函数实现过程,体现了运行时多态和接口规范化的编程思想。这些规范能提升代码安全性和可维护性。
2025-07-11 11:07:19
640
原创 QPostEventList 类源码解读
摘要:QPostEventList是一个继承自QVector<QPostEvent>的类,用于管理按优先级排序的事件队列。其核心特性包括:1) 通过addEvent()方法维护事件按优先级降序排列,优化了追加和插入逻辑;2) 隐藏基础类的append/insert方法强制使用排序插入;3) 包含递归计数器(startOffset/insertionOffset)支持嵌套事件处理;4) 通过QMutex实现线程安全。类使用std::upper_bound进行二分查找插入,确保高效排序,同时要求QP
2025-07-11 06:14:56
930
原创 qt通过QAxObject操作word插入表格及数据,图片生成文档
***********************************************以下为插入图片区域*************************************************************//*插入表格*******************************************以下评分表格************************************************************///行距设置为单倍行距。
2024-12-11 06:35:42
1490
原创 【无标题】vertex shader and fragment shader
The vertex shader differs in its input, in that it receives its input straight from the vertex data. The other exception is that the fragment shader requires a vec4 color output variable, since thefragment shaders needs to generate a final output color
2024-10-20 11:59:36
285
原创 How to output point‘s coordinate of qwtplotcurve
How to output point's coordinate of qwtplotcurve
2022-11-05 14:53:07
197
1
原创 setting axis of qwtplot
QwtPlotRescalerQwtPlotRescalertakes care of fixed aspect ratios for plot scales.QwtPlotRescalerauto adjusts the axes of aQwtPlotaccording to fixed aspect ratios.usage: d_rescaler->setEnabled(true); d_rescaler->setReferen...
2021-01-09 14:37:26
278
原创 QWebEngineView的使用
#include <QWebEngineView>QWebEngineView *webView = new QWebEngineView();webView->load(QUrl("file:///E:/MyProject/temp/1d_report.html"));webView->show();grid->addWidget(webView);...
2020-03-03 20:50:39
403
原创 additional options of vs2017
Vs2017 default:-Zc:rvalueCast -Zc:inline -Zc:strictStrings -Zc:throwingNew /permissive- /bigobj -w44996 -w44456 -w44457 -w44458Vs2015 default:-Zc:rvalueCast -Zc:inline -w44996 -w44456 -w44457...
2020-03-03 07:56:59
872
原创 Per the error message
"Debug Error! Program: C:\Users... my file path HEAP CORRUPTION DETECTED: after Normal block (#78) at 0x011058C8. CRT detected that the application wrote to memory after end of heap buffer." the code ...
2020-02-27 11:50:29
208
转载 VS2010 release 和 debug 调试区别
VC下Debug和Release区别最近写代码过程中,发现 Debug 下运行正常,Release 下就会出现问题,百思不得其解,而Release 下又无法进行调试,于是只能采用printf方式逐步定位到问题所在处,才发现原来是给定的一个数组未初始化,导致后面处理异常。网上查找了些资料,在这 罗列汇总下,做为备忘~一、Debug 和 Release 的区别Debug 通常称为调试版本,...
2019-10-23 16:32:06
568
转载 C++:LIB和DLL的区别与使用
共有两种库:一种是LIB包含了函数所在的DLL文件和文件中函数位置的信息(入口),代码由运行时加载在进程空间中的DLL提供,称为动态链接库dynamic link library。一种是LIB包含函数代码本身,在编译时直接将代码加入程序当中,称为静态链接库static link library。共有两种链接方式:动态链接使用动态链接库,允许可执行模块(.dll文件或.exe文件)仅包含在运...
2019-09-11 15:40:07
439
原创 pyinstaller打包Python脚本生成exe文件
D:\code\python>pyinstaller -F undup.py179 INFO: PyInstaller: 3.5179 INFO: Python: 3.7.4180 INFO: Platform: Windows-7-6.1.7601-SP1182 INFO: wrote D:\code\python\undup.spec188 INFO: UPX is not a...
2019-08-30 16:08:36
337
原创 打包Python脚本生成exe文件
D:\code\python>pyinstaller -F -w undup.py408 INFO: PyInstaller: 3.5408 INFO: Python: 3.7.4409 INFO: Platform: Windows-7-6.1.7601-SP1412 INFO: wrote D:\code\python\undup.spec420 INFO: UPX is no...
2019-08-29 16:01:57
625
转载 centos服务器设置代理上网的方法
1.全局的代理设置:vi /etc/profile添加下面内容http_proxy = http://username:password@yourproxy:8080/ftp_proxy = http://username:password@yourproxy:8080/export http_proxyexport ftp_proxy1 2 3 4 52.yu...
2019-07-11 17:06:12
11199
1
原创 centos7配置网络yum源
配置网络yum源:1.备份原始yum源:cd /etc/yum.repos.dmv CentOS-Base.rpeo CentOS-Base.repo.bak2.配置CentOS的DNS:vim /e...
2019-07-11 17:00:22
821
原创 Linux配置网卡IP地址
配置网卡IP地址: nmcli connection show //查看当前网卡的链接 nmcli connection delete ens33 //删除指定网卡的链接 nmcli connection add ifname ens33 con-name ens33 ipv4.method auto type et...
2019-07-11 16:11:15
778
转载 CIDR的IP地址的表示与划分方法
早期的ip地址划分:最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址是一个32位的二进制字符,为了方便人类的记忆,所以,通常人们会将二进制的IP地址表示成十进制的格式,没每八位分割一下,即分成四段...
2019-07-04 14:36:53
2352
转载 FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式
FTP的传输有两种方式:ASCII传输模式和二进制数据传输模式 1.ASCII传输方式:假定用户正在拷贝的文件包含的简单ASCII码文本,如果在远程机器上运行的不是UNIX,当文件传输时ftp通常会自动地调整文件的内容以便于把文件解释成另外那台计算机存储文本文件的格式。但是常常有这样的情况,用户正在传输的文件包含的不是文本文件,它们可能是程序,数据库,字处理文件或者压缩文件(尽管字处理...
2019-07-03 14:54:41
5550
原创 QHeaderView-A section refers to a part of the header - either a row or a column, depending on the or
The QHeaderView class provides a header row or header column for item views.A QHeaderView displays the headers used in item views such as the QTableView and QTreeView classes. It takes the place of ...
2019-05-02 15:02:11
205
原创 QwtPlotPanner QwtPlotMagnifier QwtPlotZoomer
// panning with the left mouse button (void )new QwtPlotPanner( canvas() ); // zoom in/out with the wheel QwtPlotMagnifier *magnifier = new QwtPlotMagnifier( canvas() );//图形的整体缩放 ...
2019-04-15 17:32:42
1129
原创 QwtPlotMagnifier QwtPlotRescaler QwtPlotZoomer
QwtPlotMagnifierprovides zooming, by magnifying in steps.UsingQwtPlotMagnifiera plot can be zoomed in/out in steps using keys, the mouse wheel or moving a mouse button in vertical direction.Tog...
2019-04-14 10:33:51
557
原创 qwidget::show
if you show some widget before it's parent window, you will see some window flash away suddenly.
2019-04-13 14:53:10
1232
原创 DLL 和 LIB
什么是DLL?DLL,即 Dynamic Link Library(动态链接库)。我们经常会看到一些 .dll 格式的文件,这些文件就是动态链接库文件,其实也是一种可执行文件格式。跟 .exe 文件不同的是,.dll 文件不能直接执行,他们通常由 .exe 在执行时装入,内含有一些资源以及可执行代码等。 Windows 的三大模块就是以 DLL 的形式提供的(Kernel32.dll,User...
2019-04-10 10:15:05
112
原创 Attributes that variables (and other objects) may possess.
8.2.1 AttributesAn attribute is some feature that is associated with an object.For example, common attributes of a variable include that variable’s name, its memory address, its runtime value, a ...
2019-04-04 17:41:52
179
原创 What Is a Variable?
A variable is an object that can have a value bound to it dynamically. That is, the program can change the variable’s value attribute at runtime. Note the operative word can. It is only necessary ...
2019-04-04 17:14:21
515
原创 The Heap Section and Dynamic Memory Allocation
Although simple programs may only need static and automatic variables,sophisticated programs need the ability to allocate and deallocate storagedynamically (at runtime) under program control. In the...
2019-04-04 16:43:20
258
原创 The Stack Section
The stack is a data structure that expands and contracts in response to procedure invocations and returns, among other things.At runtime, the system places all automatic variables (nonstatic local v...
2019-04-04 16:37:15
148
vim支持perl的插件
2016-06-16
使用vs2019 编译 qt-5.15.0的源码生成的完整的SDK,包括dll/pdb/h文件,可以调试qt代码
2023-08-29
redhat linux支持中文需要的安装包
2016-06-16
q5 表格头问题,垂直表头总是被合并到第1列。
2019-03-07
eclipse aar 报错services.xml(拒绝访问。)
2016-06-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅