Qt Creator

qt creator源码全方面分析(4-6)

痴心易碎 提交于 2020-08-05 13:42:31
目录 Qt插件基础 Qt插件基础 我们知道Qt Creator源码是基于插件架构的,那么我们先来介绍下插件基础知识。 相关内容如下: How to Create Qt Plugins <QtPlugin> - Defining Plugins Echo Plugin Example QPluginLoader QLibrary moc(源码见qtbase/src/tools/moc目录) 原创造福大家,共享改变世界 献出一片爱心,温暖作者心灵 来源: oschina 链接: https://my.oschina.net/u/4295823/blog/4280493

Linux下QT5以上版本串口的最简单实现(测试可用)

余生长醉 提交于 2020-08-04 12:31:24
Linux下QT5以上版本串口的最简单实现(测试可用) 1. 简介 简简单单一个串口,在Linux环境下踩了无数的雷。这里用最简单的方式实现串口通讯。 把串口的TX和RX短接,就可以收到我们发的数据了。 2. 查看串口名称 打开终端,输入命令行,看看现在设备上有的串口。看看你想用哪一个。 //查看串口名称 ls - l / dev / ttyS * //终端输出 crw - rw -- -- 1 root dialout 4 , 67 7 月 28 08 : 51 / dev / ttyS1 crw - rw -- -- 1 root dialout 4 , 67 7 月 28 08 : 51 / dev / ttyS2 crw - rw -- -- 1 root dialout 4 , 67 7 月 28 08 : 51 / dev / ttyS3 3. QT代码 QT5以上的版本,可以使用“serialport”非常方便。 在.pro文件中加入一句话 QT + = serialport 简单说,串口总共分三步: 第一步初始化 myCom = new QSerialPort ( ) ; //这个在.h中定义了 QSerialPort *myCom;//声明对象 myCom - > setPortName ( "/dev/ttyS3" ) ; //串口的名称 myCom - >

qt creator源码全方面分析(4-6)

杀马特。学长 韩版系。学妹 提交于 2020-07-29 09:10:20
目录 Qt插件基础 Qt插件基础 我们知道Qt Creator源码是基于插件架构的,那么我们先来介绍下插件基础知识。 相关内容如下: How to Create Qt Plugins <QtPlugin> - Defining Plugins Echo Plugin Example QPluginLoader QLibrary moc(源码见qtbase/src/tools/moc目录) 原创造福大家,共享改变世界 献出一片爱心,温暖作者心灵 来源: oschina 链接: https://my.oschina.net/u/4286781/blog/4280481

新人报道

喜欢而已 提交于 2020-05-08 14:05:09
1.今天开始准备正式入驻博客园,记录自己工作中的点滴: UOS 及开发环境安装 一、 操作系统安装: 1. 开机后,按 F1, 修改如下图 BI OS设置,F10保存后重启: 2. 开机后按 F12, 选择 U 盘启动,如下截图: 3. 选择 Install Deepin; 4. 选择语言,下一步; 4. 选择手动安装,建议将系统安装在 256GB 的 SSD 盘中,此处如果已经有分区,先将分区删掉,再重新新建分区; 5. 按照以下顺序新建分区: 6. 创建分区后,选择 / 分区,点击开始安装; 7. 系统开始安装,等待安装完成之后,拔掉 U 盘,重启电脑,系统安装完成。 二、 开发环境安装: 1. 安装 gedit : sudo apt install gedit; 2. 修改配置文件: sudo gedit /etc/apt/sources.list 将下边文本,替换到 sources.list 文件中 ## Generated by deepin-installer #deb [by-hash=force] http://10.0.10.25/uos eagle main contrib non-free #deb-src http://packages.chinauos.cn/uos eagle main contrib non-free #deb [by-hash

qt creator源码全方面分析(4-3)

ぃ、小莉子 提交于 2020-05-08 12:24:43
内外命名空间 QtCreator源码中,每一个子项目都有内外两层命名空间,一个是外部的,一个是内部的。 示例如下 namespace ExtensionSystem { namespace Internal { class IPluginPrivate; class PluginSpecPrivate; } class EXTENSIONSYSTEM_EXPORT IPlugin : public QObject { ... }; } // namespace ExtensionSystem 其中 ExtensionSystem是外部的,其中的类等内容会被EXTENSIONSYSTEM_EXPORT导出,用户使用时可见。 ExtensionSystem::Internal是内部的,定义的都是内部私有类(参考 公有私有类 ),不进行导出。譬如前置声明中的IPluginPrivate。 原创造福大家,共享改变世界 献出一片爱心,温暖作者心灵 来源: oschina 链接: https://my.oschina.net/u/4310950/blog/4270111

VS2017上在线和离线安装Qt插件(在线安装)

谁说胖子不能爱 提交于 2020-05-08 00:25:42
版权声明:如需转载,请告知博主并声明出处 https://blog.csdn.net/CLinuxF/article/details/88816436 文章目录 前言 在线安装 离线安装(推荐) 前言 很多朋友喜欢用VS来进行Qt开发,刚好最近我也有这个需求(需要在VS上面调试,QtCreator调试我就不吐槽了!!!) 在这里我给大家分享一下vs2017 x64的qt插件的安装与创建工程。 在线安装 点击“工具 —-> 扩展和更新” 点击“联机”—->“搜索qt”—->”下载” 开始下载,这里下载很慢(建议离线下载还快一点!) qt-vsaddin-msvc2017-2.1.2-beta-03.08.2017.vsix 等待插件信息下载完毕后,在“扩展和更新窗口”的底部会出现“更新已列入计划…”的提示信息。关闭vs2017即可。会自动弹出“VSIX安装器窗口”。等待它初始化完毕后,在出现的“计划任务界面”中,可以见到“Qt Visual Studio Tools”安装任务,直接点“修改按钮”确定安装; 重新打开VS2017,在菜单栏多了一栏(Qt VS Tools),并点击,并选择”Qt option” 点击add—>”…”,添加Qt安装目录下的对应文件.我的是vs2017,所以是 D:\Qt\Qt5.9.0\5.9\msvc2017_64(Qt之前版本可能不一样),最后点击OK

qt creator源码全方面分析(4-2)

让人想犯罪 __ 提交于 2020-05-07 08:52:54
目录 global头文件 global.h xx.h global头文件 插件的本质就是动态链接库,对于库,需要导出符号,供用户导入使用。在qt creator的源码中,存在固定的导入导出模式。 global.h 对于每个库和插件,都有一个xx_global.h头文件,其中xx为库或插件名。示例如下 #pragma once #include <qglobal.h> #if defined(XX_LIBRARY) # define XX_EXPORT Q_DECL_EXPORT #else # define XX_EXPORT Q_DECL_IMPORT #endif 这就很明显了,XX_LIBRARY作为开关,来决定导入导出。 xx.h 对于具体的实现,我们可以 class XX_EXPORT xx { ... } 在类的声明中添加XX_EXPORT。 在qt creator源码中,在项目文件中添加了定义 DEFINES += XX_LIBRARY 这导致XX_EXPORT被替换为Q_DECL_EXPORT进行导出。 对于库或插件的使用者,直接包含xx.h即可,由于没有定义XX_LIBRARY,这里XX_EXPORT被替换为Q_DECL_IMPORT进行导入。 原创造福大家,共享改变世界 献出一片爱心,温暖作者心灵 来源: oschina 链接: https://my

qt creator源码全方面分析(4-2)

随声附和 提交于 2020-05-07 08:51:03
目录 global头文件 global.h xx.h global头文件 插件的本质就是动态链接库,对于库,需要导出符号,供用户导入使用。在qt creator的源码中,存在固定的导入导出模式。 global.h 对于每个库和插件,都有一个xx_global.h头文件,其中xx为库或插件名。示例如下 #pragma once #include <qglobal.h> #if defined(XX_LIBRARY) # define XX_EXPORT Q_DECL_EXPORT #else # define XX_EXPORT Q_DECL_IMPORT #endif 这就很明显了,XX_LIBRARY作为开关,来决定导入导出。 xx.h 对于具体的实现,我们可以 class XX_EXPORT xx { ... } 在类的声明中添加XX_EXPORT。 在qt creator源码中,在项目文件中添加了定义 DEFINES += XX_LIBRARY 这导致XX_EXPORT被替换为Q_DECL_EXPORT进行导出。 对于库或插件的使用者,直接包含xx.h即可,由于没有定义XX_LIBRARY,这里XX_EXPORT被替换为Q_DECL_IMPORT进行导入。 原创造福大家,共享改变世界 献出一片爱心,温暖作者心灵 来源: oschina 链接: https://my

Qt 学习之路 2(4):信号槽

巧了我就是萌 提交于 2020-05-06 03:54:43
Home / Qt 学习之路 2 / Qt 学习之路 2(4):信号槽 Qt 学习之路 2(4):信号槽 豆子 2012年8月23日 Qt 学习之路 2 110条评论 信号槽是 Qt 框架引以为豪的机制之一。熟练使用和理解信号槽,能够设计出解耦的非常漂亮的程序,有利于增强我们的技术设计能力。 所谓信号槽,实际就是观察者模式。当某个事件发生之后,比如,按钮检测到自己被点击了一下,它就会发出一个信号(signal)。这种发出是没有目的的,类似广播。如果有对象对这个信号感兴趣,它就会使用连接(connect)函数,意思是,用自己的一个函数(成为槽(slot))来处理这个信号。也就是说,当信号发出时,被连接的槽函数会自动被回调。这就类似观察者模式:当发生了感兴趣的事件,某一个操作就会被自动触发。 (这里提一句,Qt 的信号槽使用了额外的处理来实现,并不是 GoF 经典的观察者模式的实现方式。) 为了体验一下信号槽的使用,我们以一段简单的代码说明: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 // !!! Qt 5 #include <QApplication> #include <QPushButton> int main ( int argc , char * argv [ ] ) { QApplication app ( argc , argv ) ;

Qt错误:error: undefined reference to `vtable for 类名&apos;

只愿长相守 提交于 2020-05-05 15:41:54
我在Qt Creator中对一个程序不断进行修改进行实验,一个类需要使用信号槽。 于是,我将其继承于QObject: class MyClass : public QObject { Q_OBJECT public : MyClass(); ... } 此时构建出错了: error: undefined reference to `vtable for MyClass' 将Q_OBJECT注释掉就可以了~ 但是,我需要使用信号槽能力,Q_OBJECT是必需的。 解决办法:保留Q_OBJECT 右键工程,弹出菜单,分别执行1、2、3 原因是 之前构建的工程有缓存,没有清除掉旧的信息 ,彻底弄干净再来构建。 来源: oschina 链接: https://my.oschina.net/u/4364002/blog/4267153