Qt
文章平均质量分 53
小桥留水人家
这个作者很懒,什么都没留下…
展开
-
QJSEngine实现QtC++与Javascript混合编程
QJSEngine类提供了一个评估JavaScript代码的环境先来熟悉一些Javascript脚本范例:function uniOnMenuClick(int a){ }function uniOnMouseDown(){ return 1;}QJSEngine 执行脚本内容的函数是QJSValueQJSEngine::evaluate(const QString&program, const QString&fileName= QStri...原创 2023-06-18 18:06:15 · 494 阅读 · 0 评论 -
Qt 数据库开发
注释mysql.pro 第六行#QMAKE_USE += mysql并且添加mysql相关头文件和lib库文件INCLUDEPATH += D:\Devlib_2019\mysql\includeLIBS += D:\Devlib_2019\mysql\lib\libmysql.lib 设置编译生成的路径DESTDIR = ../mysql/lib/,防止找半天生成的文件。第三:将生成的mysql驱动的lib、dll文件放入D:\Qt\5.15.2\msvc2019\plugins\sqldrivers。原创 2022-09-25 18:13:31 · 753 阅读 · 1 评论 -
Qt对象模型
标准c++对象模型为对象范式提供了非常有效的运行时支持。但它的静态特性在某些问题领域是不灵活的。图形用户界面编程是一个既需要运行时效率又需要高度灵活性的领域。通过结合c++的速度和Qt对象模型的灵活性,Qt提供了以下特性。1、一种非常强大的无缝对象通信机制,称为信号和插槽。2、可查询和可设计的对象属性。3、强大的事件Event和事件过滤器。4、用于国际化的上下文字符串翻译。5、高精度且先进的定时器QTimer,使得在事件驱动GUI中更优雅的集成更多任务成为可能。6、以自然的方式组织对象所有权的分层和可查询的原创 2022-06-26 20:20:10 · 463 阅读 · 0 评论 -
C++11获取相对时间
C++相对时间原创 2022-06-20 22:00:20 · 695 阅读 · 0 评论 -
Qt实现重启功能
Qt重启程序原创 2022-04-17 15:49:13 · 2051 阅读 · 0 评论 -
QPainter绘制空白或者受到其他控件颜色干扰
大家都知道:QPainter提供了高度优化的功能来完成大多数图形用户界面程序需要的绘图。它可以画任何东西,从简单的线条到复杂的形状,比如馅饼和和弦。它还可以绘制对齐的文本和像素地图。通常,它绘制一个“自然”的坐标系统,但它也可以进行视图和世界转换。QPainter可以操作任何继承QPaintDevice类的对象。QPainter的常见用法是在小部件的paint事件中:构造和自定义(例如设置钢笔或画笔)油漆器。然后画。记住在绘制之后销毁QPainter对象。例如:void SimpleExample原创 2021-10-23 20:38:51 · 980 阅读 · 0 评论 -
qcustomplot 自定义毫秒时间轴
qcustomplot 提供了显示 时间的坐标轴挺方便的,不过分配的tick 通过它的优化算法,会被自动设置tick的数量。在某些业务场景下就不适用。代码如下 可固定tick数量为从x轴的数据中筛选出等分tick坐标点 提供如下算法:double intiger;double v = modf(range.size() / double(mTickCount + 1e-10), &intiger); double ext = range.size() - intiger * mTi..原创 2021-05-23 21:16:16 · 2130 阅读 · 0 评论 -
qcutomplot实现游标工具栏toolTip
QCustomPlot到目前为止已经更新至2.1.0版本了。我看了QCustomPlot源码 目前性能方面在不开opengl下相比之前版本有了很大的提升。实测8条曲线,1秒刷新一次完全没有压力。 整个图库的架构很强。首先分成6个layer,每个layer绘制一张pixmap图片,并且每张pixmap上都有相应的布局都继承自QCPLayerable,最后在QCustomPlot重载paintEvent事件中一一绘制6个Layer的pixmap。目前唯一感觉不够的是:能不能用多线程把6个layer的pixmap原创 2021-04-13 21:28:25 · 1695 阅读 · 5 评论 -
QWidget子类化设置背景色,不继承父类颜色
一般设置背景颜色可以采用调色板进行调色QPalette pal(this->palette());pal.setColor(QPalette::Background, QColor("#F5F5F5")); //设置背景黑色this->setAutoFillBackground(true);this->setPalette(pal);这种方式在QMainWindow下没有任何问题!子类化QWidget并重载paintEvent(QPaintEvent)事件.原创 2021-04-13 21:02:20 · 2369 阅读 · 0 评论 -
Qt开发之实现平滑曲线
前言最近找了一份新工作,由于前面从事金融行业,主要负责行情的开发,这边对绘图有些经验,所以同样被安排绘图工作。预研了几个图库,感觉qcustomplot还蛮合适的。性能,交互,还可定制提供了极强的拓展性。回到正题,Qt实现平滑曲线,很简单,就是根据贝塞尔曲线算法计算出点,何为贝塞尔曲线?又称贝兹曲线或贝济埃曲线,是应用于二维图形应用程序的数学曲线。一般的矢量图形软件通过它来精确画出曲线,贝兹曲线由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋,我们在绘图工具上看到的钢笔工具就是来做这种矢量曲原创 2021-03-25 20:25:52 · 2164 阅读 · 0 评论 -
QChart绘制图形的缩放原理
QChart类是管理图表系列、图例和轴的图形表示。想知道某段代码实现的原理,最直观的就是查看框架库的底层源代码,同时也可以锻炼阅读他人代码的能力及学习人家的某些高妙语法。来看看Qt关于缩放的实例实例中表明是摁键盘上的+/-进行缩放功能,调用QChart类的zoomIn()和zoomOut()。找到QChart的源代码如下:d_ptr又是什么东西,且看原来是QChartPrivate类哦,继续找到QChartPrivate的zoomIn(qreal factor)源代码原来是根据原有视图范围大小和缩放原创 2021-02-03 10:19:58 · 1416 阅读 · 1 评论 -
Qt开发之网络传输http/https应用集合
Qt使用http用到几个类QNetworkAccessManager、QNetworkRequest、QNetworkReply原创 2021-01-20 14:59:49 · 794 阅读 · 1 评论 -
Qt开发之QTableWidget
QTableWidget从继承QTableView,实质属于模型-视图范畴之内,只是带了默认模型(model)基于项目(item)的表格视图控件。我们不需要实现model内的数据加工。QTableWidget为应用程序提供了标准的表显示工具。QTableWidget中的项目(item)是由QTableWidgetItem来实现。QTableWidget各种属性可利用Qt自带的UI设计师来设置,如下图:接下来我们定制 2行4列的表格视图。 ui->tableWidget->se原创 2021-01-14 15:51:11 · 1148 阅读 · 0 评论 -
Qt开发之QEvent事件运行流机制
最近,项目需要统一界面风格样式,自定义UI界面,或多或少会用到Qt事件系统,进一步了解以后你会发现跟MFC、wxWidgets这些前端界面框架的事件机制有些相似,甚至Qt同样可以完全使用Qt事件系统(实际上还不够完善,还有很多控件事件没有定义,需要为人为自定义)。说到事件,必然要说到Qt的信号与槽,信号与槽是Qt的核心机制,本质是回调技术的替代方案。...原创 2021-01-03 16:28:34 · 733 阅读 · 1 评论 -
Qt信号与槽机制原理及优缺点
信号和插槽用于对象之间的通信。信号和槽机制是Qt的核心特性,可能也是与其他框架提供的特性最大不同的部分。Qt的元对象系统使信号和插槽成为可能。作为一个C/C++程序员来说 回调应该属于深入人心的机制了。其他工具包使用回调来实现这种通信。回调函数是一个指向函数的指针,所以如果你想要一个处理函数通知你一些事件,你可以将一个指向另一个函数(回调函数)的指针传递给处理函数。处理函数然后在适当的时候调用回调函数。但回调可能不太直观,而且在确保回调参数的类型正确性方面可能会遇到问题。在Qt中,我们有一个回调技术原创 2020-12-30 15:40:45 · 4789 阅读 · 0 评论 -
Qt12.9.2版本 解决中文乱码问题与国际化翻译冲突问题
在以前Qt版本中 解决中文乱码。 直接用QObject::tr 宏就够了或者用QTextCodec类 设置或者 QStringLiteral宏。 网上很多都用QTextCodec::setCodecForCStrings(QTextCodec::codecForName("GB2312"));QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8")); 来设置全局编码后来随着Qt版本越来越高了,也越来越好了 这两个静态函.原创 2020-11-23 19:07:53 · 264 阅读 · 0 评论 -
基于2440的Qt环境移植,且开发Qt跨平台程序
1、tslib编译和安装其他不多说,jz2440出厂移植的是Qtopia-free-2.2.0,在Qtopia 4.*版本中,默认的Tslib版本为Tslib 1.4。在Qtopia 2.*版本中,默认的Tslib版本为Tslib 1.3tslib-1.4.tar.gz下载链接http://vdisk.weibo.com/s/AcUHxOERV2k01.原创 2017-09-30 15:11:17 · 1068 阅读 · 0 评论 -
利用Qt中QSerialPort的类写串口通讯助手
首先,还是先说QSerialPort是Qt5.1引入的,其中一个问题是在读取数据时,采用QIO:Device中的信号readyread,这个信号在处理底层串口缓冲区时,是只要缓冲区一有数据,立马发送这个信号,所以我们在连接这个信号时会发生接收数据不完整(我这边是出现打开串口后,接收第一次的数据少字节)。所以很多人建议不使用这个类,采用QExtSerialPort这个第三方库。但是,如果要求不是很高原创 2017-09-03 19:06:44 · 471 阅读 · 0 评论