- 博客(52)
- 资源 (15)
- 收藏
- 关注

原创 Qt下的Ribbon控件——SARibbon
#[TOC]简介这是Qt下一个轻量级的Ribbon控件(Office样式UI),界面截图:实际使用到自己写的一个开源软件中效果:MIT协议,欢迎大家使用并提出意见gitee(码云) - https://gitee.com/czyt1988/SARibbongithub - https://github.com/czyt1988/SARibbon编译方法使用Qt Creator直接打开SARibbonBar.pro,并编译即可,会编译出SARibbonBar库和一个(目前只有一个例子)例子
2020-08-30 23:20:45
15730
14
原创 FFT之后那些事情2——如何得到正确的振幅
介绍了fft之后,要如何处理才能得到正确的振幅,介绍了为何要针对0频率和最后一个频率要进行特殊的处理
2024-04-07 23:54:57
5109
原创 基于CMake的大型C++工程组织
一个大型工程,并不会单单只包括应用自身,还有此程序抽象出来的库,这些库除了自身模块化意外,还有可能是提供给第三方用户进行插件化的开发使用的,同时工程还包含了很多第三方库。
2023-12-31 21:51:50
2260
原创 QLocale::Language相关枚举结果
QLocale语言相关枚举的结果下面表格遍历了所有QLocale::Language的枚举,调用QLocale::bcp47Name()函数和QLocale::languageToString得到的结果其中QLocale::AnyLanguage是跟随系统语言。QLocale::Languagebcp47NamelanguageToStringQLocale::AnyLanguagezhDefaultQLocale::CenCQLocale::Abkhazia
2021-07-08 22:36:11
885
2
原创 开源Qt Ribbon控件——SARibbon的布局思路及介绍
SARibbon的介绍见:https://blog.youkuaiyun.com/czyt1988/article/details/108312948SARibbon的布局SARibbonBar是Qt的开源Ribbon控件,代码托管于github和giteeSARibbon介绍[github],[gitee]SARibbon布局入门[github],[gitee]在介绍如何使用SARibbon之前,需要首先了解SARibbon是如何布局的,在src/SARibbonBar/doc下有个ppt对Rib
2021-02-14 22:07:51
10670
5
原创 数据驱动智联制造论坛经验及知识分享
数据驱动智联制造2019年4月18号,在上海交大举行了主题名为数据驱动 智联制造的主题论坛,此次论坛的主办单位为上海交通大学,在此论坛上,成立了上海交大工业大数据联合创新实验室。有幸代表公司参与了此次论坛,并聆听了业内大佬的演讲和讨论,本次论坛邀请了现任富士康工业互联网副董事长李杰教授、中国工程物理研究院总工程师``工程院院士徐志磊院士等多方大牛,对大数据在工业界的应用进行了探讨。先说感想...
2019-05-03 15:34:36
680
1
原创 频谱分析-FFT之后的那些事情
知乎上有几个比较好的讲解傅里叶变换的文章:傅里叶分析之掐死教程(完整版)通过这些文章都能对频谱有大致了解,但等你自己坐下了,要对一个信号进行频谱分析时,你会发现好多细微的问题其实并没有注意,下面,将讲讲那些细微的问题实现快速傅里叶变换忠告:除非你自己为了验证你的能力,或为了验证你对对快速傅里叶变换算法的了解,千万别用自己写的快速傅里叶变换算法,也别在网上随便找一个算法就拿来用,快速傅里叶变...
2018-12-13 21:36:10
53943
24
原创 记录一次失败的控件编写经历——initStyleOption居然不是虚函数
概述最近写一个Ribbon控件,Ribbon控件上的编辑控件都是图标加文字加控件模式,如Word的的这个combobox控件:它是由图标和文件以及控件本身组成,但普通的QComboBox只是一个combobox,当然也可以使用QLabel+QComboBox组合控件来实现,但加入了QLabel有点多余,于是就想重写一个QComboBox,在绘制控件时把图标和文本绘制出来思路QWidge...
2018-11-14 22:37:08
3898
1
原创 Qt编写控件时遇到underMouse判断错误的情况(误判State_MouseOver)
在写qt下的ribbon控件时,重绘了一个toolbutton,但是却遇到一个问题就是在有弹出菜单模式下,点击菜单后按钮还处于hover状态,什么意思,就是如图所示:源代码见:https://github.com/czyt1988/SARibbon/blob/master/src/SARibbonBar/SARibbonToolButton.cppMenuButtonPopup按钮在菜单弹出...
2018-11-14 22:26:01
4173
1
原创 记录一次从MinGw转到MSVC编译器的错误经历
MinGW和MSVC兼容度并不那么好,由于中文的问题,sa一直使用的是MinGW来进行编译,但说实话,在windows上MinGW编译出来的程序在体积和速度上和MSVC还是有点差距的,因此,sa最终版打算使用msvc编译器。于是,前几天用Qt5.9 MSVC2015版进行了一下编译结果发现了许多问题,有语法的问题,也有非常讨厌的链接问题。下面是一些记录:MinGW比MSVC宽松很多,类似...
2018-11-14 21:45:43
7479
原创 Modern C++中lambda表达式的陷阱
Modern C++中lambda表达式的陷阱lambda表达式给stl带来了无与伦比的便利,尤其对像std::for_each这种使用函数指针的场合更是方便,但却是写的爽快,维护的蛋疼,前几天还遇到了一个陷阱,这里特意记录一下陷阱1:默认引用捕获可能带来的悬挂引用问题在捕获参数时喜欢使用[&]来一次捕获包括this在内的所有内容,此方法非常方便,但在遇到局部变量时,引用捕...
2018-04-30 15:34:14
7484
原创 加强【圣域2】各个技能的打击感-华丽的击飞效果
这是2013在网易博客写的一篇帖子,在百度圣域吧也发过类似的帖子:加强圣域2各个技能的打击感-华丽的击飞效果 多年后网易博客也差不多走到尽头,圣域2还是不愠不火,贴吧里活跃的还是那些人,为了防止哪天网易博客羽化,把那篇博文在这里备份一下,毕竟也有几句脚本,也可以算是一些和编程相关的内容,顺便可以参考一下圣域2游戏对技能如何处理的。原文:闲的无聊又开始了圣域之旅。许多人抱怨...
2018-03-18 22:04:44
2738
1
原创 Qt下csv的读写封装
概述csv文件作为简单的格式化文本文件,随着数据挖掘和python的普及突然就又火起来了,工作中发现许多数据交互由原来的xml又改为通过csv文件进行交互,csv文件有个最大的缺点是单个单元格里不能出现换行,如果是单纯的数据交互,csv的确是最简单的格式化方式。 csv把每个单元数据用逗号隔开,但某些情况下需要注意的是,遇到一个单元内容有包含引号"和逗号,时是需要转义的。否则会造成格式混乱,...
2018-02-28 16:34:15
7335
4
原创 shell学习 - 处理脚本的多参数输入
对于许多脚本都希望有多个参数的输入(如 xxx.sh -p -o yyy --czy),对于shell这种脚本更是不例外,一般程序的起始函数(main)都会有一个args选项代表着输入的参数项,那么解析这些参数项目就是本文的主要问题,这里记录shell多参数输入的写法以供参考。
2018-01-19 20:26:47
43100
原创 记录一个QScopedPointer forward declared 的编译错误
记录一个QScopedPointer forward declared 的编译错误使用QScopedPointer内包含一个前置声明的变量时,仍然发生一个编译错误编译错误显示(博主这个类名叫SASelectRegionEditor,使用IMPL模式实现)D:\Qt\Qt5.7.0\5.7\mingw53_32\include\QtCore\qscopedpointer.h:57: error: in
2017-11-28 16:15:15
1343
3
原创 Qt-解锁QtPropertyBrowser控件
简介用过Qt Creator的都会发现,Qt的ui designer有个很好看的属性设置控件:但此控件不在Qt的任何官方文档有提及,在github里有这个工具的地址:QtPropertyBrowser on github 这里还有这个控件的介绍 doc.qt.io 关于QtPropertyBrowser的介绍 之前我也写过一篇blog介绍过Qt属性表控件的使用 QtTreePropertyBr
2017-09-30 10:24:46
15297
11
原创 QDataStream写文件操作-writeBytes与writeRawData区别
Qt提供了非常方便的写文件操作QDataStream,可以使用流式操作来对数据进行读写,但Qt提供如此强大的功能的同时,也会付出一些额外的开销,在默认的流式写操作时,会附加一些Qt独有的数据内容,在这里进行了一些实验进行记录QDataStream writeBytes与writeRawData区别有次序列化文件时,要求需要写一个固定大小的char[256],无论有没有遇到\0都要写入char[25
2017-05-09 16:02:19
17440
5
原创 Qt使用多线程的一些心得——2.继承QObject的多线程使用方法
现在Qt官方并不是很推荐继承QThread来实现多线程方法,而是极力推崇继承QObject的方法来实现,当然用哪个方法实现要视情况而定,别弄错了就行,估计Qt如此推崇继承QObject的方法可能是QThread太容易用错的原因。这里介绍了如何使用继承QObject并moveToThread方法实现多线程
2017-05-05 11:39:15
45801
34
原创 Qt使用多线程的一些心得——1.继承QThread的多线程使用方法
摘要Qt多线程方法1 继承QThread1写一个继承于QThread的线程2 QThread的几个函数quitexitterminate函数3 正确的终止一个线程4 如何正确启动一个线程41正确的启动一个全局线程和UI一直存在的线程42 如何启动一个局部线程用完即释放的线程继承QThread的一些总结使用QObject实现多线的方法见:http://blog.youkuaiyun.com/cz
2017-03-22 08:29:58
119724
39
原创 Qt第三方圆形进度条-及其改进
Qt第三方圆形进度条的改进要实现一个圆形的进度条功能,在网上找到一个比较出名的第三方封装类:QRoundProgressBar,地址:sourceforge 的 QRoundProgressBar 功能封装的还是不错,提供了3种模式,线形、圆环、饼状。使用过程中发现圆环进度条对背景透明支持不够完善,内圆的背景无法实现透明,为了解决此问题,下面对此控件进行了一些修订,实现完整的圆形进度条。QRoun
2016-12-07 13:29:29
9010
原创 C++11的模板类型判断——std::is_same和std::decay
C++11的模板类型判断——std::is_same和std::decay问题提出:有一个模板函数,函数在处理int型和double型时需要进行特殊的处理,那么怎么在编译期知道传入的参数的数据类型是int型还是double型呢? 如:#include <iostream>template<typename TYPE>void typeCheck(TYPE data){ //do so
2016-10-14 08:34:20
73248
2
原创 有符号无符号数据类型溢出测试记录
今天遇到一个比较基础问题:若有符号位的数据类型溢出会发生什么后果? 以前记得微机原理上说数据有原码、反码、补码3种表示形式,计算机通常的处理都是按照补码数据进行的,那么在一个数据类型的最大值溢出后会发生什么情况呢.........
2016-09-28 13:54:35
1455
原创 Qt 下快速读写Excel指南
Qt Windows 下快速读写Excel指南很多人搜如何读写excel都会看到用QAxObject来进行操作,很多人试了之后都会发现一个问题,就是慢,非常缓慢!因此很多人得出结论是QAxObject读写excel方法不可取,效率低。 后来我曾试过用ODBC等数据库类型的接口进行读写,遇到中文嗝屁不说,超大的excel还是会读取速度慢。 最后,看了一些开源的代码后发现,Windows下读取exc
2016-08-04 17:47:28
68018
71
原创 Qwt扩展之-数据拾取
在文章之前,首先看看这篇文章要实现的效果: 数据拾取就是在鼠标经过线条时,会捕获一些特征数据,上图是捕获离鼠标最接近的点。Qt的Qwt绘图组件提供了拾取数据的现成的类,同时也留有非常好的接口,用户可以任意扩展,下面就介绍Qwt专门负责拾取数据及鼠标跟踪用的QwtPicker及其子类。并对其扩展,构建一个用于显示鼠标经过图像时捕获最近点的拾取器
2016-06-01 14:45:21
10836
44
原创 QtChart-Qt官方绘图库安装与使用
简介Qt的线性绘图控件有大名鼎鼎的Qwt,ChartDirector,小巧玲珑的QCustomPlot,当然还有自家的QtChart。长久以来QtChart在Qt家族里一直是收费的模块,只有商业版才可以使用,但Qt5.7之后将开放其权限,可参见:Qt 5.7 亮瞎眼的更新。下面将介绍如何安装QtChart并进行简单的绘图。下载这里用git下载QtChart,参考Qt Charts 5.7.0 安装教
2016-05-14 22:28:21
52706
19
原创 Qt 5.7 亮瞎眼的更新
Qt 5.7的beta版已经出来了,这将是一个超级重大的更新,主要有几个商业版的模块在GPLv3 open source 版的用户也可以用了,其中包括了两个很炫酷的模块: Qt Charts Qt Data Visualization 这两个有多牛,先看看效果: Qt Charts: Qt Data Visualization: 下面多图预警:———————————————————–
2016-05-09 11:12:10
26043
3
原创 QDockWidget嵌套布局详解-实现Visual Studio布局
概述许多工程软件,如Qt Creator,VS,matlab等,都是使用dock布局窗口,这样用户可以自定义界面,自由组合窗口。 Qt的嵌套布局由QDockWidget完成,用Qt Creator拖界面得到的dock布置形式比较固定,不能得想要的任意组合形式,要得到如下图所示的效果,后续布局必须通过代码来完成。 ps:这是自己没事写的一个数据可视化软件 下面说说如何实现完全自由的界面布局效
2016-04-22 15:31:22
44575
39
原创 Lambda表达式:代替std::bind的绝佳方法
Lambda表达式:代替std::bind的绝佳方法lambda表达式使得函数指针有了更灵活的使用方法,但是有些时候,对于大型的函数,还是不建议用lambda表达式,谁也不想在函数里又看到一段长长的函数。Lambda表达式的用法在:C++11 lambda表达式在for_each和transform算法下的使用已经进行了介绍。另外我在另一篇文章利用C++11的function和bind功能
2016-04-18 17:32:46
6975
1
原创 Qt属性表控件的使用 QtTreePropertyBrowser
属性表是vs2003时引入的的新控件,用于流量和设置大量的信息,现在,很多软件上都能看到它的身影,如vs,Qt Creator等IDE的详细设置里都离不开属性表。虽然,再Qt Creator里,属性表到处可见,但是,却没有集成到常用控件里面,vs2008 fp里就给MFC添加了CMFCPropertyGridCtrl,大Qt当然不能没有它,Qt的项目里是有这个控件的……
2015-06-16 14:25:41
26773
14
原创 C++11 lambda表达式在for_each和transform算法下的使用
以前,在lambda表达式没有进入标准的时候,对容器的遍历等涉及到使用函数指针的情况,一般人会懒得使用std::for_each,或std::transform,也许只是一个短短的几句话,却要单独写个函数,或函数对象,写的代码反而不如自己用for循环来的快。但是,C++11引入了lambda表达式后,一切都变的简单了!1.lambda表达式lambda表达式是一个匿名函
2015-02-08 13:52:43
15487
2
原创 最强数学库GSL(GNU Scientific Library) Qt环境下部署
GSL(GNU Scientific Library)是一个 C 写成的用于科学计算的库,有超过1000个函数,该库提供了关于数学计算的很多方面,Matlab的大部分函数几乎都能借助它实现,可以在数值计算中省却很多事情。网上有各个环境下的GSL配置,唯独没有Qt的,这里专门写此文,介绍Qt下的GSL配置。
2014-09-11 09:06:52
16430
9
原创 Matalb绘图总结2
Matlab绘图总结2Contents概述如何在一个数据量很大的曲线上做标记平滑一个数据量很少的曲线绘制面积图概述上篇文章介绍了简单的绘图函数,地址见: http://blog.youkuaiyun.com/czyt1988/article/details/38637725这篇将介绍一些论文绘图中经常碰到的问题,如在一个数量很大的曲线上做标记,平滑一
2014-09-04 16:08:27
2562
原创 Matlab绘图总结1
Matlab绘图总结1ps.此文由matlab自动生成Contents概述2D绘图plot设置标题,xy轴标签及网格改变图形窗口背景绘制多个曲线在一个图上改变线形及标记坐标轴(axis)控制图例 legend双坐标轴图形绘制 - plotyy概述matlab有着比较强的绘图功能,在进行计算后处理时,使用matlab绘图有着origin等绘
2014-08-17 11:45:46
8440
原创 QStandardItemModel角色控制及QTreeView添加不同的右键菜单
Qt使用QStandardItemModel的角色控制及QTreeView添加不同的右键菜单
2014-05-19 11:36:43
16825
4
原创 C++最小二乘法拟合-(线性拟合和多项式拟合)
在进行曲线拟合时用的最多的是最小二乘法,其中以一元函数(线性)和多元函数(多项式)居多,本文介绍的这个类,用C++封装了专门用于进行多项式拟合和线性拟合的方法,可以根据用户输入的阶次进行多项式拟合,算法来自于网上,和GSL的拟合算法对比过,没有问题。此类在拟合完后还能计算拟合之后的误差:SSE(剩余平方和),SSR(回归平方和),RMSE(均方根误差),R-square(确定系数)。
2014-03-23 20:38:13
59655
28
原创 利用C++11的function和bind功能,实现QStandardItemModel的通用遍历函数
在使用Qt的树形视图和表格视图QTableView和QTreeView时,经常需要遍历所有条目,每种功能都写一个遍历函数既麻烦又不符合编程最简原则,因此,写一个通用的遍历函数是很必要的(类似于std::for_each),对于遍历时实现的功能不一样,可以通过函数指针来代替需要实现的功能。在讲这个之前,需要了解std::function和std::bind,具体可以自行谷歌。
2014-03-12 15:29:52
11397
2
Qt属性表控件-QtPropertyBrowser
2016-05-11
QDockWidget多层嵌套布局示例
2016-04-22
GSL数学库在Qt环境下搭建教程
2014-09-11
matalb绘图总结2
2014-09-04
matlab2d绘图总结及publish功能示例
2014-08-17
QStandardItemModel角色控制及QTreeView添加不同的右键菜单
2014-05-19
Qt QTreeView使用-QStandardItemModel的使用
2014-05-04
C++实现最小二乘法一元回归和多项式拟合
2014-03-23
MFC动态绘制曲线图-HightSpeedChart实现
2014-03-04
MFC下TeeChart和HightSpeedChart动态绘制曲线图
2014-03-04
MFC下好用的高速绘图控件-(Hight-Speed Charting)
2014-01-24
qt下超强绘图控件 - QCustomPlot
2013-08-21
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人