
Qt
文章平均质量分 86
GenTwKiller
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
魔幻
原创 2020-11-12 15:28:26 · 226 阅读 · 0 评论 -
Qt-ThreadPool
闲谈前几篇,说了Qt线程的最常见的QThread和偷懒的QtConcurrent,这两者使用的场景是不同的,前者更具有交互型,后者独立。对于QtConcurrent这种高级API如何让他发挥极致呢,我们就要用到QThreadPool和完美的QEventLoop,当然C++11就是最强搭档。在实践中,再次体会到Qt的事件驱动框架,以及信号和槽。可以这样说:谈及Qt的线程,线程工作与卡槽中。本篇是...原创 2019-01-25 16:52:08 · 539 阅读 · 0 评论 -
Qt-Plugin
目录闲谈一步一步回首闲谈插件经常听说,但是关于制造一个插件,如何制造,如何使用便是要解决的。但是,在这之前,就为什么使用插件说说我的见解。说实话,自己还百科下,大致理解解耦等意思,代价是,没事找事(因为功能完全可以实现,而且,可选的路子也挺多),回报是,新的事务。当然这样的理解着实搞笑,权当在此记录相关。一步一步插件接口的定义:其实就是一个抽象对象,Q_DECLARE_...原创 2019-01-22 16:44:17 · 503 阅读 · 0 评论 -
Qt-Plugin-Care
闲谈上篇介绍了Qt插件的代码化开发过程,其过程更像动态库加载。这次着重讲讲Qt对于designer的插件的拓展支持。QDesignerCustomWidgetInterface使用过程中遇到诸多挫折,最要命的的是第一步:我们自定义插件所用的编译器和QtCraetor编译器是否一致。整个开发过程确定QtCraetor的编译器是什么版本,你要用到的Designer的编译版本。【要命】 定...原创 2019-01-23 15:24:58 · 169 阅读 · 0 评论 -
Qt-窗口嵌套exe
某些特殊场景,我们要在主程序中嵌套第三方程序。这样臃肿的设计好比,在乡村小楼里面建设一个商业广场,本人不是很喜欢。Qt的QProcess和QWindow可以为我们完成这样的任务,核心思路即QProcess启动第三方exe,获取进程ID winApi通过进程ID获取窗口句柄 QWindow::fromWinId(WId id)创建window window代理的widget,即我们常见的Q...原创 2019-02-22 14:51:35 · 2372 阅读 · 0 评论 -
Qt-虚拟键盘
杂开发过程中,查阅大量关于虚拟键盘的使用,其中最容易的是使用Qt自带的输入法,但是此法受制于人。其做法int main(int argc, char *argv[]){ // 环境 qputenv("QT_IM_MODULE", QByteArray("qtvirtualkeyboard")); QApplication a(argc, argv); ....原创 2019-02-27 15:46:10 · 3634 阅读 · 2 评论 -
QTcp-心跳
心跳机制,大致实现两中,心跳发起的主动方为谁,server或client。其基本思路,是在一定时间间隔内模拟server和client的通信。所以,这就比一般通信多了时间属性,而非随意进行交互。这里,我们将client作为主动方,其过程如下:client连接server成功后,即开始心跳, 定时器,定时向server发送,并内置计数,当计数大于一个定值即判断为掉线, server收到心跳请...原创 2019-02-18 14:14:36 · 2485 阅读 · 0 评论 -
Qt-日志输出
为了方便进行现场调试,我们需要使用日志记录我们关心的数据信息,而Qt提供了日志系统非常方便,只需要我们提供一个函数指针即可,定义如下void myMessageHandler(QtMsgType, const QMessageLogContext &, const QString &);通常,实现如下void outputMessage(QtMsgType type,...原创 2019-02-18 15:15:10 · 668 阅读 · 0 评论 -
Qt-MVC架构
目录杂何为just do itCareQes杂Qt可作为数据可视化的一种解决方案。对此,常用的就是mvc架构了。较与常规wiget填充展示数据层次更加清晰。何为具体看下图数据源:首先我们需要定制适合的数据结构,用个容器进行包裹即可src_model:对于不同的view需要不同的model,我们对应继承并重写相关方法即可proxy_model...原创 2019-02-28 13:13:30 · 1324 阅读 · 0 评论 -
Qt-EventLoop
之前,对于eventLoop的理解即while(1){},在某些效果上,的确生效。于是与对其认知,阻塞等待。但是,while(1)这样的死循环,一堵所有,惨无人道,在Qt开发中不建议使用,因为某时刻出现错误,而且有损于Qt的事件驱动机制。为了更好的阻塞,建议使用eventLoop。对于,Qt的应用框架,存在app->exec(),然而,当我们使用dialog等exec()时,实则开启...原创 2019-02-19 16:22:42 · 1882 阅读 · 0 评论 -
khala-Study
目录瓢MAP码一码瓢最近,看了下khala部分源码,对于c++的特性觉得甚是神奇,再次记录一笔,大致画了个瓢。MAP如上,大致关系。基本原理:每个对象拥有一个map维护自身函数。码一码typedef std::function<bool(int &, QString &, int)> RegisterMessageCallBa...原创 2019-03-06 17:53:24 · 452 阅读 · 0 评论 -
Qt-QtConcurrent
QtConcurrentHigh-level APIs that make it possible to write multi-threaded programs without using low-level threading primitives本次简单的使用Qt的Concurrent的线程相关,对其理解就是个开辟一个独立的线程,任务型的线程,结束任务即结束。QtConcurr...原创 2019-01-11 09:09:26 · 647 阅读 · 0 评论 -
Qt-打印机
在项目开发过程中,涉及到打印机的使用,很幸运,Qt的打印机模块printsupport的支持是的打印简单些。在查询打印模块的类时,体会到Qt的对于这种硬件的结构层次的封装,数据库等类结构也是如此。我的见解如下,提供custom core和widget。coreQPrinterInfo,对已存在的打印机的封装。 QPrinter,打印的执行体。widgetQPrintDialog...原创 2019-01-09 15:08:26 · 1816 阅读 · 0 评论 -
QTcp
本次分享下关于QTcp*的使用。我们的服务端为客户端发送图片。服务端,继承QTcpServer,重写incomingConnection方法。一个线程,一个map来管理客户端的socket描述符。 重写incomingConnection,从源头获取客户端的套接字描述符实现如下:class CusTcpServer:public QTcpServer{ Q_OBJECT...原创 2019-01-03 14:53:09 · 777 阅读 · 0 评论 -
Qt 线程
其实,关于线程的使用,网上资料一大堆,这里说说我的见解。本篇着重其用法,关于线程退出,线程安全等仍需学习。先看代码,class WriteThread : public QObject{ Q_OBJECTpublic: explicit WriteThread(int *ptrData,QObject *parent = nullptr); ~Write...原创 2018-12-28 14:12:08 · 398 阅读 · 0 评论 -
回调函数
本次再一次见证Qt信号和槽的强大。下面是所遇所得,分享下。回调函数,使用需要是static或者全局,即不能对其特指。使用的情景:经常遇见使用第三方的SDK,需要将我们的回调函数进行注册。 遇到的问题:回调函数中使用非静态成员,即静态成员访问非静态的。 涉及的细节:通常这种回调被第三方工作与其他线程。首先,关于细节,我们可以将涉及的数据进行拷贝,通过Qt的信号和槽机制,emit出需要处...原创 2018-12-28 13:22:01 · 288 阅读 · 0 评论 -
Qt Opengl-widget-base
Qt当前的opengl的模块封装,只需要gui,widgets两大模块。而quick中,quick模块中的QQuickItem和QQuickWindow。本节先说widget,QOpenglWidget为我们提供显示的ui,可当传统的widget使用,需要我们处理其opengl初始化,绘制,resize,当然也可方便使用传统widget的其他事件。class OpenglWidget...原创 2018-12-29 09:53:51 · 356 阅读 · 0 评论 -
tcp-数据包
我们往往使用tcp协议传输数据,都会自定义一个包裹,本次分享下对包的理解,其基本结构如下:在发送端,我们只需要将完整的包裹一次发送出去即可,eg // 字节 QByteArray bytes; PackageInfo info; info.exUse_int = 1000; info.exUse_char = '1'; ...原创 2019-01-03 16:00:27 · 318 阅读 · 0 评论 -
Qt-串口
一次调试转台设备时,需要用到串口调试,便使用了Qt的serialport模块。这里记录下,pro QT += serialport 关键,设备的结束符,eg:本次调试的设备为:"\r\n" 常规初始化基本没问题class SerPort:public QObject{ Q_OBJECTpublic: SerPort(QString portName,QObject...原创 2019-01-03 16:37:02 · 375 阅读 · 0 评论 -
Qt Opengl-widget-practice
这次我们将实践,实现一个线条。在z=0的平面绘制两条相交直线。效果如下:首先,我们做一个Ui,class OpenglShow : public QOpenGLWidget,protected QOpenGLFunctions{ Q_OBJECTpublic: explicit OpenglShow(QWidget *parent = nullptr); ...原创 2018-12-29 13:36:46 · 588 阅读 · 0 评论 -
Qt Opengl-QOpenGLTexture-3D
关于纹理,可以理解为图像数据,在2D纹理中,就是将一张图像盖在模型上,模型中空;至于3D纹理,就可以解释为若干张图像,在通俗讲就是多维数组,多层切片的实体。 纹理坐标,x轴水平向右,y轴垂直向上,z轴朝向屏幕内,可以看作是3维坐标下的第一象限的单元格。 纹理贴图,可以理解为,断续的顶点数据和多维数据建立一个map(这是我们常规理解,当然也可以是纹理到顶点的map)一个矩形上贴一个图片,如下:...原创 2018-12-29 14:35:53 · 2400 阅读 · 0 评论 -
model with qml
目录闲谈c++部分qml中使用闲谈Qt的model/view框架使得data和show进行了分离,且对应的view有适配的model,view层面的继承和model层面的继承刚好对应。但是,我们常常需要定制view所需的子控件,这就要使用delegate。在widget中,还是比较麻烦的,更好的继承QStyledItemDelegate,重写Reimplemented Pu...原创 2019-01-11 10:14:44 · 280 阅读 · 0 评论 -
Qt-Src-PrivateHide
Qt的源码结构甚是神奇,一堆宏,充分体现高效的设计,将面向对象进行到底。关于封装,本次了解到一个类的稀有成员如何隐藏。先看下普通的一个类,class CusData:public QObject{ Q_OBJECTpublic: CusData(QObject *parent = nullptr); ~CusData(); void setData(int ...原创 2019-01-02 14:17:06 · 386 阅读 · 0 评论 -
Qt signal-slot
Qt的信号和槽机制,使得两个对象可以进行交互。得益于Qt的元对象系统,可以在Qt的help中查找The Meta-Object System,它告诉我们如何使用该系统,进而使用信号和槽以及属性系统。来自Qt help 文档The meta-object system is based on three things:1.The QObject class provides a base ...原创 2019-01-03 13:28:48 · 661 阅读 · 0 评论 -
Qt QOpenGL概要
Qt目前已经对opengl支持很好了,大致涉及这几个类。见解如下:数据: QOpenGLBuffer,支持顶点数据(顶点坐标,顶点法向量,纹理坐标,颜色),顶点索引。可StreamDraw,即数据写死,也可DynamicDraw,即通过voidwrite(int offset, const void *data, int count)方法更新。 QOpenGLTexture,...原创 2018-12-28 14:59:38 · 1090 阅读 · 0 评论