- 博客(32)
- 资源 (5)
- 收藏
- 关注
原创 qdoc:Qt文档是如何生成的
Qdoc是开发者用于在软件工程中生成文档的一个工具。它根据qdocconf文件的指示, 从工程的源文件中提取qdoc类型注释,并以html页面或者DITA XML2文档的形式格式化到文件中。Qdoc在.cpp和.qdoc文件中查找注释,而不会在.h文件中查找。一条qdoc注释往往以一个前置声明符号(!)开始Qdoc把以.qdocconf结尾的参数理解为QDoc configure file,configure file是使用者用以告诉qdoc何处存放源代码文件、头文件以及.qdoc文件,同时它也指定了
2021-09-09 13:46:46 1565
原创 not found -lncurses
项目场景:编译lua5.2时出现错误问题描述:make[2]: 进入目录“/home/ubuntu/Downloads/lua-5.2.0/src”gcc -o lua lua.o liblua.a -lm -Wl,-E -ldl -lreadline -lncurses /usr/bin/ld: 找不到 -lncurses 原因分析:缺少lib32ncurses5-dev软件包在64位服务器上的32位。。解决方案:sudo apt-get install lib32ncur
2021-08-30 13:40:33 275
转载 dos2unix命令详解
使用git 的时候碰到git将unix换行符转换为windows换行符的问题,需要使用dos2unix命令将文件转换为unix格式。dos2unix命令用来将DOS格式的文本文件转换成UNIX格式的(DOS/MAC to UNIX text file format converter)。DOS下的文本文件是以\r\n作为断行标志的,表示成十六进制就是0D 0A。而Unix下的文本文件是以\n作为断行标志的,表示成十六进制就是0A。DOS格式的文本文件在Linux底下,用较低版本的vi打开时行尾会显示^M,
2021-08-27 16:27:14 4103
翻译 C++扩展QML
C++扩展QMLQML执⾏在受限的空间中,QML作为⼀种语⾔提供的功能有时是被限制的。通过C++写的本地函数可以扩展QML运⾏时的功能。应⽤程序可以充分利⽤基础平台的性能和⾃由度。理解QML运行环境当运行QML时,他会在一个由QtQml模块下的C++代码实现的运行环境中执行。它由一个负责执行QML的引擎,持有访问每个组件属性的上下文和实例化的QML元素组件构成。#include <QtGui>#include <QtQml>int main(int argc, cha
2021-08-27 15:57:38 456
原创 浅谈Qt和C++的关系
Qt和C++Qt是QML和JavaScript的C++扩展功能工具包,并且Qt是由C++开发的,所以C++贯穿了整个Qt的项目。我会着重从c++的角度来介绍Qt。从C++的角度分析Qt,然后你会发现Qt通过内省数据的机制实现了许多现代语言的特性。这个是通过Qt的基础类QObject来实现的。Qt使用源对象信息实现了信号和槽的回调绑定。每个信号都能绑定任意数量的槽函数或者其他的信号。当一个信号弄一个对象实例发出后,会调用绑定信号的槽函数,发送信号的对象不需要知道接受槽对象的任何信息,反之亦然。这个机制可
2021-08-25 17:32:43 5614
原创 gdb理解
GDB是什么GDB,GNU项目调试器,允许 查看一个程序运行过程中发生了什么?或者是程序崩溃时,他在做什么?GDB可以做四件事情:启动程序,指定可能影响其行为的任何内容是程序在指定条件下停止当程序停止时,可以检查发生了什么可以更改程序中的内容,纠正一个错误的影响,并且可以继续了解另一个错误GDB常用调试命令命令作用help查看命令帮助,具体查询方式是help+命令,简写hrun重新开始运行文件,简写rstart单步执行,运行程序,停在第一执行语句
2021-08-25 09:48:42 120
原创 qml动画元素
//常用场景的动画PropertyAnimation(属性动画) 使用属性值改变播放的动画NumberAnimation (数字动画) 使用数字改变播放的动画ColorAnimation (颜色动画) 使用颜色改变的动画RotationAnimation(旋转动画) 使用旋转改变播放的动画//特殊场景的动画PauseAnimation ( 停止动画) 运行暂停一个动画SequentialAnimation (顺序动画) 允许动画有序播放ParallelAnimati
2021-08-23 19:20:16 84
转载 qmake中文官方文档
qmakeQMake提供了一个用于管理应用程序,库,其他组件的构建过程的面向工程系统QMake扩展了每个工程文件的信息,生成一个执行编译和连接过程的Makefile本文翻译自Qt 4.8官方文档。一、QMake使用QMake提供了一个用于管理应用程序、库、其它组件的构建过程的面向工程系统。QMake扩展了每个工程文件的信息,生成一个执行编译和链接过程的必须命令的MakeFile。1、描述工程工程文件.pro描述了工程信息。工程文件信息会被qmake用于生成包含构建过程中所需的所有命令的Mak
2021-08-19 19:12:24 1844 1
原创 make理解
程序的编译过程#mermaid-svg-bTJQrJ8OSRRbDUu4 .label{font-family:'trebuchet ms', verdana, arial;font-family:var(--mermaid-font-family);fill:#333;color:#333}#mermaid-svg-bTJQrJ8OSRRbDUu4 .label text{fill:#333}#mermaid-svg-bTJQrJ8OSRRbDUu4 .node rect,#mermaid-svg-bT
2021-08-19 14:56:33 117
原创 repo理解
repo 源码控制工具 它是一种对git构成补充的Google代码库管理工具,repo可以整合多个git代码仓库,并将内容上传到gerrit版本控制系统中去。 repo有两个仓库,一个是管理项目清单的仓库manifests,另一个是管理仓库的脚本的仓库repo,当有人使用repo初始化一个项目时就会把这两个仓库拷贝到本地。repo项目清单 cd .repo/manifests vi default.xml 在这个xml文件中包含了repo管理的所有信息。default.xml中的关
2021-08-19 13:26:24 225
原创 Qml属性特点
属性分类// (1) identifierid: thisLabel// (2) set x- and y-positionx: 24; y: 16// (3) bind height to 2 * widthheight: 2 * width// (4) custom propertyproperty int times: 24// (5) property aliasproperty alias anotherTimes: thisLabel.times// (6) set tex
2021-08-12 16:40:48 158
原创 Qt进程间通信-UDP
发送端 1. 创建套接字 QUdpSocket mSocket; mSocket = new QUdpSocket();2. 发送数据到指定的端口和地址 mSocket->writeDatagram();接收端 1. 创建套接字 QUdpSocket mSocket; mSocket = new QUdpSocket(); 2. 绑定地址和端口号 connect(mSocket,SIGNAL(readyRead()),this,SLOT(read_data()));
2021-08-11 18:28:00 277
原创 Qt进程间通信-TCP
服务器流程 1. 创建QTcpServer对象 server = new QTcpServer(); 2. 监听一个端口,使得客户端可以使用这个端口访问服务器 server->listen(QHostAddress::Any,port); 3. 当服务器被客户端访问时,会发出newConnection()信号,使用槽函数处理,将这个信号和socket关联 connect(server,&QTcpServer::newConnection,this,&MainWindo
2021-08-11 16:54:41 493
原创 QT进程间通信-共享内存
一、特点1.Qt使用QSharedMemory类中的方法来映射出一个共享内存段2.可以多线程使用,也可以进程之间使用 QSharedmemory::create()3.可以提供单一进程或者单一线程互斥访问共享内存 QSharedMemory::lock()二、流程1.在类中声明一个QSharedMemory的类指针,并且对他进行初始化QSharedMemory *sharedMemory = new QSharedMemory(key,this); //key是任意创建的一个随机值,但是只有k
2021-08-11 13:37:11 1118
原创 QT布局常用借口函数
添加窗口部件到布局中addWidget(QWidget *, int row, int column, Qt::Alignment = 0)addWidget(QWidget *, int row, int column, int rowSpan, int columnSpan, Qt::Alignment = 0) addLayout(QLayout *, int row, int column, Qt::Alignment = 0)addLayout(QLayout *, int row, i
2021-08-10 11:03:06 252
原创 修改Ubuntu18.04中QT默认版本的方法
查看Ubuntu默认QT版本的命令qmake -v修改下面的文件中的地址即可/usr/lib/x86_64-linux-gnu/qt-default/qtchooser/default.conf/usr/lib/x86_64-linux-gnu/qt4/bin/usr/lib/x86_64-linux-gnu将这两行修改为自己安装qt的目录即可...
2021-08-06 16:31:22 1551
原创 module-qtbase-install_subtargetsBUG
问题描述:编译qt源码,执行make install时出现bugmake[2]: *** [sub-corelib-install_subtargets] Error 2make[2]: Leaving directory '/home/fx/qt-everywhere-src-5.14.2/qtbase/src'Makefile:62: recipe for target 'sub-src-install_subtargets' failedmake[1]: *** [sub-src-in
2021-08-06 15:48:43 1269 4
转载 pluginspec.h 中所有公共函数的主要作用
// 插件名字。当状态达到 PluginSpec::Read 时才可用。QString name() const;// 插件版本。当状态达到 PluginSpec::Read 时才可用。QString version() const;// 插件兼容版本。当状态达到 PluginSpec::Read 时才可用。QString compatVersion() const;// 插件提供者。当状态达到 PluginSpec::Read 时才可用。QString vendor() const;//
2021-08-06 13:57:42 133
原创 对qtcreator.pri文件的理解
#如果QTCREATOR_PRI_INCLUDED存在,那就抛出错误,相当于#ifndef,#define,防止pri文件被引入多次!isEmpty(QTCREATOR_PRI_INCLUDED):error("qtcreator.pri already included")QTCREATOR_PRI_INCLUDED = 1#QTCreator的版本QTCREATOR_VERSION = 4.0.3#插件能兼容的QTCreator的版本QTCREATOR_COMPAT_VERSION = 4
2021-08-05 15:29:24 593
原创 对qtcreator.pro文件的理解
include(qtcreator.pri)#version check qt!minQtVersion(5, 5, 0) { message("Cannot build Qt Creator with Qt version $${QT_VERSION}.") error("Use at least Qt 5.5.0.")}include(doc/doc.pri)#TEMPLATE是代码模板,将告诉qmake生成的文件是subdirs可选值类型#subdirs是创建依次构建
2021-08-05 13:40:19 462 1
原创 Linux知识点笔记一
Linux知识点笔记虚拟机的设置vim高级配置vim t.c -> vim编辑器:main -> tab 健补全 int main(int argc,char *argv[]){ return 0; }终端固定在工具栏快捷键打开终端: ctrl + alt + t网络问题虚拟机 -> 设置 -> 网络适配器 :修改为NAT模式重启networkingsudo /etc/init.d/networking restart修改终端字体、快捷
2021-08-04 17:53:52 93
原创 Linux知识点笔记二
Shell基本命令shell简介shell工作原理命令: 是用户向系统内核发出控制请求,与之交互的文本流命令行: 指的是供用户输入命令的界面,其本身只是接受输入,然后把命令传递给命令解释器。shell:命令行解释器,将用户命令解析为操作系统所能理解的指令,实现用户与操作系统的交互。当需要重复执行若干命令,可以将这些命令集合起来,加入一定的控制语句,编辑成为shell脚本文件,交给shell批量执行shell命令提示符格式username@hostname:direction$userna
2021-08-04 17:53:43 66
原创 QT执行designer时出现段错误
问题描述:在bin目录下执行designer时出现段错误```cqt.qpa.plugin: Could not find the Qt platform plugin "xcb" in ""This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.Available platform
2021-08-04 17:33:12 679
原创 qt源码编译
#qt源码下载地址 1. qt官网下载 https://www.qt.io/download-open-source#source 2. 镜像网站下载(更方便一点,各个版本都有) http://mirrors.ustc.edu.cn/qtproject/archive/qt/#编译流程 1. 执行./configue
2021-08-04 11:36:21 378
原创 qt源码编译时出现错误
问题描述:编译qt源码时,执行。/configure出现You don’t seem to have ‘make’ or ‘gmake’ in your PATH.+ cd qtbase+ /home/yc/qt5/qt-everywhere-src-5.12.7/qtbase/configure -top-level You don't seem to have 'make' or 'gmake' in your PATH.Cannot proceed. 解决方案:执行sudo a
2021-08-04 11:09:55 1558
原创 qt的对象,属性和事件的理解
功能: 1.提供了信号和槽的机制,可以用于对象间的通信 2.提供了实时的类型信息 3.提高了动态的属性系统基于: 1.QObject类:是所有QT类的基类,是QT 对象模型的核心,该模型的核心功能是信号和槽的通信机制 2.Q_OBJECT宏:只有加入了该宏,你才能使用QT中的信号和槽的机制,不管是否使用信号槽,所有QObject的子类都使用Q_OBJECT宏 3.moc编译器:元对象编译器,工作是将c++编译器不认识的东西,转换成认识的东西,例如信号和槽的关键字 ```...
2021-08-03 16:40:55 491
原创 ubuntu18.04中对于sprintf的编译错误
错误示例char insert_sql[128] = {0};sprintf(insert_sql,"insert into history values('%s','%s','%s')",hsg.time,hsg.name,hsg.words); warning: ‘%s’ directive writing up to 49 bytes into a region of size between 42 and 169 [-Wformat-overflow=]错误原因sprintf拼接时可能
2021-06-30 09:47:29 8152 3
原创 IO多路复用中select/poll/epoll的区别
select :1.最多监听1024个文件描述符2.select有清空表的过程,需要反复从用户空间向内核空间拷贝文件描述符。效率较低。3.select需要遍历所有的文件描述符,找到准备好的文件描述符,这个遍历的过程非常浪费时间。poll :1.监听文件描述符没有个数限制2.poll没有清空表的过程,效率比select高。3.poll也需要遍历所有的文件描述符,找到准备好的文件描述符,这个遍历的过程非常浪费时间。epoll :(本世纪最好的IO多路复用机制)1.监听文件描述符没有个数限制
2021-06-07 21:22:55 130
原创 C语言不对数组下标越界的好处和坏处
好处:不需要浪费时间对有些已知是正确的数组下边进行检查,增加程序运行效率坏处:使无效的下标无法被检测出来,产生越界,这样做事很危险的,充满未知性
2021-03-21 14:57:37 287
原创 scanf中输字符串,输入格式符加&和不加的区别
首先先创建一个实例来看一下区别实例如下:如上图所示,加了&后,编译器会作出警告,表示类型不符。也就是说scanf读取的是一个 数组指针的类型,而不是一个字符数组.相当于取得是存放着字符数组地址的指针。就是数组指针类型。可能理解的不是很到位,欢迎大家提出问题,帮忙补充!谢谢!...
2021-03-21 13:19:48 2264 1
原创 python爬虫出现AttributeError: ‘NoneType‘ object has no attribute ‘text‘错误
项目场景:python爬虫爬取小说(Jack cui网络爬虫教学实例)问题描述:遇到的问题:代码编译后出现AttributeError: ‘NoneType’ object has no attribute 'text’错误Traceback (most recent call last): File "E:/Python/src/sd.py", line 28, in <module> content=get_content(url) File "E:/Pytho
2020-11-26 16:37:17 13962 1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人