download/xiaolong1126626497/14919797 二、创建COM组件 为了方便测试,我这里使用QT来创建COM组件,再由QT自己调用。...QT创建COM的方法看这里: (1)VS2017下使用QT生成COM组件: https://blog.csdn.net/xiaolong1126626497/article/details/112556866...QtCreate下生成COM组件: https://blog.csdn.net/xiaolong1126626497/article/details/112550412 当前创建COM组件的工程我是使用...VS2017+QT插件的方式生成的。...+= core gui QT += axcontainer greaterThan(QT_MAJOR_VERSION, 4): QT += widgets CONFIG += c++11
Qt是面向对象的框架,使用特殊的代码生成扩展(称为元对象编译器(Meta Object Compiler, moc))以及一些宏,易于扩展,允许组件编程。...2008年,奇趣科技被诺基亚公司收购,QT也因此成为诺基亚旗下的编程语言工具。2012年,Qt被Digia收购。...安装 下载 Qt的安装包需要从他的下载链接上下载(从官网直接来的话要回答写奇怪的问题,大概就是扯什么开源啊版权的问题,不会答的还下不了0.0) 运行安装程序 下载下的程序没有执行权限,我们得帮他加一下,...myths@myths-X450LD:~/Download$ sudo chmod +x qt-unified-linux-x64-2.0.2-2-online.run myths@myths-X450LD.../qt-unified-linux-x64-2.0.2-2-online.run 路径 一般都帮我们弄好了Desktop 文件,这里不去管他,想看的话用locate 命令。
一、环境介绍 操作系统: win10 64位 QT版本: 5.12.6 Visual Studio IDE 版本: 2017 二、创建COM组件 为了方便测试,我这里使用QT来创建COM组件,再由QT...QT创建COM的方法看这里: (1) VS2017下使用QT生成COM组件: https://blog.csdn.net/xiaolong1126626497/article/details/...https://blog.csdn.net/xiaolong1126626497/article/details/112550412 本次文章是接着上一篇文章写的,创建的COM组件可以参考上一篇文章: QT...应用编程: windows下QT调用COM组件: https://blog.csdn.net/xiaolong1126626497/article/details/112978956 三、QtCreate...里创建工程调用COM组件完成界面开发 上一篇文章里介绍了在QtCreate里使用QAxObject调用COM组件,并完成函数接口调用;如果调用的COM组件是带界面的程序,并需要集成到当前QT程序中,就需要使用
则是无连接的UDP服务 Socket建立 调用: int socket(int domain, int type, int prococol)来创建socket domain:指明所使用的协议族...常用PF_INET, 表示互联网协议族(TCP/IP) 说明: 在绑定本地地址或连接远程地址时需要初始化sockaddr_in结构,其中指定address family时一般设置为AF_INET,即使用...Family AF_INET = PF_INET 因此,一般规范的用法是在socket中用PF_INET指定协议族,在设置address中时,使用...位值从网络字节序转换为主机字节序 ntohs(); 把16位值从网络字节序转换为主机字节序 bind函数在成功调用后,返回0,出错返回-1并将errno设置为响应的错误号 建立连接 面向连接的客户程式使用
内存拷贝, select让内核把 FD 消息通知给用户空间的时候使用了内存拷贝的方式,开销较大,但是Epoll 在这点上使用了共享内存的方式,这个内存拷贝也省略了。...需要注意的是,当创建好epoll句柄后,它就是会占用一个fd值,在linux下如果查看/proc/进程id/fd/,是能够看到这个fd的,所以在使用完epoll后,必须调用close()关闭,否则可能导致...总结: LT模式可能触发的次数更多, 一旦触发的次数多, 也就意味着效率会下降; 但这样也不能就说LT模式就比ET模式效率更低, 因为ET的使用对编程人员提出了更高更精细的要求,一旦使用者编程水平不够,...Linux内核具体的epoll机制实现思路。...当某一进程调用epoll_create方法时,Linux内核会创建一个eventpoll结构体,这个结构体中有两个成员与epoll的使用方式密切相关 /* * This structure is stored
五、对话框 2、Qt内置对话框 Qt内置的所有对话框全部继承自QDialog (1)Message Box 消息对话框是非常常见常用的界面元素,主要用于为用户提示重要信息,强制用户进行选择操作 QMessageBox...QColor& color) 设置当前颜色对话框 QColor currentColor() const 获取当前颜色对话框 QColor getColor(const QColor& initial = Qt...& label, double value =0,doublemin=-2147483647,doublemax=2147483647,intdecimals=1,bool* ok=nullptr, Qt...::WindowFlags flags = Qt::WindowFlags()); 整型输⼊数据对话框 QString getItem (QWidget* parent, const QString&...::WindowFlags flags = Qt::WindowFlags(), Qt::InputMethodHints inputMethodHints = Qt::ImhNone) ; 选择条⽬型输
一、环境介绍 操作系统环境: ubuntu18.04 64位 QT版本: 5.12 二、打包发布的过程 1. 先使用Release 编译QT程序 2....ldd命令使用方法示例: wbyq@wbyq:~/qt_code$ ldd build-ffmpeg_code-Desktop_Qt_5_12_6_GCC_64bit-Release/ffmpeg_code.../libX11.so.6 (0x00007f0c81b5e000) 脚本的使用方法示例: wbyq@wbyq:~/qt_code$ cd build-ffmpeg_code-Desktop_Qt_...为了发布过程不出现各种BUG,找不到库、找不到平台等等一系列问题,现在使用一个笨办法。 将QT使用的编译器目录下的所有库拷贝到camera_linux_app目录下,有覆盖的就不管。...将QT使用的编译器目录下的plugins文件夹拷贝到camera_linux_app目录下。 (5). 在camera_linux_app目录下编写一个app启动脚本。
linuxdeployqt 简介 基于Windows-Qt 发布的打包工具windeployqt,主要打包Qt相关依赖库,但是在linux,qt官方并未发布对应的打包版本。...在github中,有人开源了这个版本linuxdeployqt,之前一直知道但是没怎么用,最近因为要打包对应工程,又拿出研究了一下。...看一下Windows命令。...on Linux....doc-pak lib Makefile plugins qt.conf RdpClient translations 实际使用过程中: platforms 与 plugins 应该位于同级目录
linux下编译qt5.6.0静态库 编译QT是一件比较麻烦的事情。所以如果没有必要,就不要编译了。如果你只需要使用QT的一些基本功能,那么就只编译源码目录下的qtbase目录下的东西即可。...下面所介绍的都只是在linux下适用的(windows下使用MinGW也可以,QT提供的MinGW安装包是32位的,需要64位的可以参考)。...提供一个我已经编译好的了 linux下64位gcc编译 http://pan.baidu.com/s/1eRMnf26 提取密码 iz39 windows下64位mingw...* -no-system-proxies 默认情况下,不使用系统网络代理 -system-proxies 默认情况下,使用系统网络代理 -no-warnings-are-errors Make 时把.../unix编程, linux系统, C/C++, Qt, 开源库
都是LINUX下的一个打开的设备描述符。内核通过这个描述符进行I/O操作。进行I/O操作就有一个性能问题,这个性能问题在于两个条件,一个条件是对同一个FD,有多个客户进行操作时如何更好的排队。...但是LINUX比较搞,它是上层用SELECT,实际上底层还是用的POLL....在LINUX下实际上POLL性能比SELECT要高一点,POLL也是监视FD集合,不过将这个FD集合单独使用一个数据结构pollfd. struct pollfd { int...虽然是增强版本,但是也是适用于特定场景下的,这个特定场景是大量并发连接中只有少量活跃的情况。在这种情况下如何避免扫描FD集合的开销和如何有效触发活跃I/O操作。...这种模式下内核会一直触发,直到事件被用户消费掉。也就是说在这种情况下FD上的数据一定被写完或者读完才不会有下一次的触发事件。
一、环境介绍 操作系统: win10 64位 QT版本: 5.12.6 Visual Studio IDE 版本: 2017 二、设置子系统为控制台 三、输出中文乱码解决 在代码页第一行指定当前文本的编码
*serv_addr, int addrlen); 7、listen() bind()之后用listen,监听绑定的端口号 int listen(int sockfd, int backlog); 使用两个队列实现...在这种情况下,listen syscall的backlog参数表示完成队列的大小 8、accept()函数 accept()函数实际做的是在已完成连接队列列头返回下一个已完成连接,服务器三路握手在listen...flags); 如果你用 connect() 连接一个数据报套接字,你可以简单的调用 send() 和 recv() 来满足你的要求 10、sendto() 和 recvfrom()函数 数据报套接字使用
前言: 前几篇文章写了MQTT服务器的搭建以及连接测试,本文是介绍用 QT来进行MQTT服务器的连接,由于QT没有现成的库,需要从QT 官网自己下载 MQTT 源码并编译。...一.QtMQTT源码下载 QT 的源码地址为: https://github.com/qt/qtmqtt 切换分支下载适配自己 QT 版本的MQTT,如下图所示: 二.源码编译 源码目录介绍,如下图...,如下所示: 4.点击构建 三.测试使用QtMQTT QT 打开 源码目录 examples 中的 simpleclient 工程 如果你的 MQTT 服务器有用户登陆限制,需要添加可用的用户名和密码...\Qt5_12\5.12.10\mingw73_64\include\QtMqtt 中 添加以下文件: 或者使用如下修改 #include 改为 #include 使用 后台回复:MQTT测试账号
之前整理过一篇文章是关于Windows下Qt打包发布与设置环境变量的,那篇文章里面Qt发布的程序是没有设置应用程序图标的,之后会再整理一篇文章的,顺便测试下使用Qt插件在打包情况下的异同。...今天要给大家分享的Ubuntu 32位下Qt程序的发布与图标设置。...根据我查到的资料,在Ubuntu 64位下,一般会使用第三方工具——linuxdeployqt-x86_64(linuxdeployqt),注意下这个是64位的,32位的我也下载了试下,但是没用成功。...Windows可以直接使用Qt自带的工具——windeployqt。 1....使用脚本获取应用程序依赖库 ubuntu下收集依赖库可以使用一个简单的脚本,这相当于Windows下windeployqt的功能了。下面贴下脚本程序: #!
序言 本教程《Qt编程指南》主要是写给Qt开发新手看的,当然前提必须学会C++,推荐《C++ Primer Plus》 这本书(已有第6版), 里面内容比较深入浅出,虽然看起来比较厚,其实很多代码是重复的...教程里面使用的是开源的开发工具集合(g++、make、qtcreator等), Visual Studio 的 Qt 配置参看附加文档(QtCreator 支持用 VC 编译器生成程序,不需要用 Visual...示例代码: https://qtguide.ustclug.org/QtProjects/ 附加文档: https://qtguide.ustclug.org/extradoc/ (附带VS2015版本Qt...配置教程、虚拟机下载链接,MSYS2版本Qt安装教程、虚拟机下载链接,还有Linux版本Qt学习虚拟机下载链接等等,如果使用虚拟机需要 VMware 10 或以上版本)。
一、功能介绍 在项目开发中,设备终端经常需要向服务器上传一些日志或者报告状态信息,下面使用QNetworkAccessManager封装了一个函数方便传入要上传的数据进行上传。...提交的数据格式使用JSON格式,请求方式使用post,代码里没有关联状态槽函数,实际运用里上传的数据量比较小,数据会间断性重复上传,就没判断成功状态。
一、环境介绍 操作系统: win10 64位 QT版本: QT5.12.6 二、QEventLoop类 QEventLoop类提供了一种进入和离开事件循环的方法。...QEventLoop 常规运用环境 : 在主界面里执行某个代码之前,需要等待某个条件成立,但是这个条件是其他线程异步通知的;这时,主线程需要等待这个条件成立才能继续执行;这时如果不想卡主界面,就可以使用
一、环境介绍 操作系统: win10 64位 QT版本: QT5.12.6 编译器: MinGW 32 、 MSVC2017 (x86) 二、捕获异常、弹窗提示用户 2.1 main.cpp代码...QMessageBox> #include #include /* 工程: debug_test 日期: 2021-03-19 作者: DS小龙哥 环境: win10 QT5.12.6...QMessageBox> #include #include /* 工程: debug_test 日期: 2021-03-19 作者: DS小龙哥 环境: win10 QT5.12.6
,记得刚开始学编程的时候,那时候就是从这里开始萌芽的。那么写了这么多函数,为啥要从这里开始“进门”呢,个人理解就是一种规定。...系统里面编程,它也是要准备一些前期工作的:它要有编译链接时的引导代码-------操作系统下的应用程序其实在main执行前也需要先执行一段引导代码才能去执行main,我们写应用程序时不用考虑引导代码的问题...3、使用atexit注册进程终止处理函数,我们使用man手册来查看它的介绍: int atexit(void(*func)(void)); 注意:atexit()注册的函数类型应为不接受任何参数的void...在正常情况下,一个用户登录之后(我们假设是A用户),A用户的有效用户ID和实际用户ID是相同的,但是如果A用户在某些场景中想要执行一些特权操作,而上面我们说到用户的任何操作,LINUX内核都是通过检验有效用户...它一般在Linux启动时开始执行,系统关闭时才结束。
Linux 系统调用(system call)是指操作系统提供给用户程序的一组“特殊接口”,用户程序可以通过这组“特殊”接口来获得操作系统提供的特殊服务。...在 Linux 中,用户程序不能直接访问内核提供的服务,必须通过系统调用来使用内核提供的服务。...Linux 中的用户编程接口(API)遵循了 UNIX 中最流行的应用编程界面标准—— POSIX。这些系统调用编程接口主要是通过 C 库(libc)实现的。...往期传送门: 史上最全的Linux常用命令汇总(超详细!... int open(const char *path,int oflag,...); //参数1:打开文件路径 参数2:打开方式 成功时返回文件描述符;出错时返回EOF 打开文件时使用两个参数