Qt Creator 源码分析:目录分析
目录树
qt-creator-opensource-src-7.0.0 目录树
1234567891011qt-creator-opensource-src-7.0.0:├─bin├─cmake├─coin├─dist├─doc├─qbs├─scripts├─share├─src└─test
目录说明
目录
说明
bin
生成Linux平台shell脚本。
cmake
cmake扩展文件
coin
用于Qt Creator 持续集成部署的一些yaml脚本
dist
安装文件配置信息和版本更新记录。
doc
生成doxygen文档的配置文件。
qbs
.qbs配置文件。qbs(Qt Build Suite)是一种跨平台的编译工具。
scripts
QtCreator使用的perl以及python等脚本。
share
源代码中所需要的一些非代码共享文件,例如代码模板等。
src
QtCreator源代码文件。
test
QtCreator测试代码。
代码文件分析
使用 cloc 对 qt-creator-opensource-src ...
Qt Creator 源码分析:环境配置
Qt Creator 简介
Qt Creator 在 GitHub 上的仓库:https://github.com/qt-creator/qt-creator
目前需要关注的地方如下原文:
123456789101112131415161718192021222324252627282930313233343536Qt CreatorQt Creator is a cross-platform, integrated development environment (IDE)for application developers to create applications for multiple desktop, embedded,and mobile device platforms.The Qt Creator Manual is available at:https://doc.qt.io/qtcreator/index.htmlFor an overview of the Qt Creator IDE, see:https://doc.qt.io/qtcreator/crea ...
Qt Creator 源码分析:序
前言
有打算分析 Qt Creator 源码的想法已经很久了,偶尔也会写一点,但是断断续续……
在做项目期间也有使用 Qt Creator 源码里的插件系统。
本着学习和提升的目的,开始写 Qt Creator 源码分析文章。
目录
Qt Creator 源码分析-0-序
Qt Creator 源码分析-1-环境配置
Qt Creator 源码分析-2-目录分析
Qt Creator 源码分析-3-程序入口
Qt Creator 源码分析-4-main()函数分析
Qt 调用 QAxWidget(dsoframer.ocx) 嵌入 office
效果
注册 dsoframer.ocx
前提:需要安装有 Microsoft Word 或者 WPS
把 dsoframer.ocx 拷贝到系统目录下,并以管理员身份注册:
32位:
copy dsoframer.ocx c:\windows\system32\dsoframer.ocx
regsvr32.exe c:\windows\system32\dsoframer.ocx
64位:
copy dsoframer.ocx c:\windows\SysWOW64\dsoframer.ocx
regsvr32.exe c:\windows\SysWOW64\dsoframer.ocx
在 QtCreator 中编写测试用例
主要代码:
12345678910111213if (ui->axWidget->isNull()) ui->axWidget->setControl("{FBCCBFE5-66FA-4ee3-9AF1-E02A59549AB9}");ui->axWidget->se ...
QDataStream
QDataStream::writeBytes
QDataStream &QDataStream::writeBytes(const char *s, uint len)
Writes the length specifier len and the buffer s to the stream and returns a reference to the stream.
The len is serialized as a quint32, followed by len bytes from s. Note that the data is not encoded.
注意,使用writeBytes函数写的文件,必须用readBytes函数读取,readBytes函数是个工厂函数,会调用new[]分配内存,因此需要调用delete[]进行删除内存,否则会泄露。
有特殊字符,比如∅ ㎡ 㘵,写入后再次读取,结果乱码。
QDataStream::writeRawData
int QDataStream::writeRawData(const char *s, int len ...
GitLab 使用教程
1.创建用户
注册用户并添加到组里
注册新用户后,登录’root’用户,通过 “管理中心” -> “用户” -> “等待批准” 把新用户添加到组里
新用户添加 SSH 密钥
登录新用户,把本机的ssh密钥".ssh/id_rsa.pub"中的内容添加到 “用户设置” -> “SSH密钥”
然后就可以拉取上传代码了
12345# 生成密钥ssh-keygen -t rsa# 查看公钥cat /home/vinda/.ssh/id_rsa.pub
创建访问令牌
2.创建项目
3.修改 GitLab 默认存储位置
GitLab 默认安装时,其默认的仓库存储位置是 /var/opt/gitlab/git-data,用户新建的仓库存储在 repositories 目录下。
1234567891011121314151617181920212223242526272829303132333435363738394041424344repositories 目录结构树:repositories/├── +gitaly│ └── tmp└── @hashe ...
GitLab + Jenkins 持续集成
概述
Gitlab是一个用于仓库管理系统的开源项目,使用Git作为代码管理工具,并在此基础上搭建起来的Web服务。
2022年2月消息,极狐(GitLab)正式宣布推出极狐GitLab SaaS (JihuLab.com),为中国用户提供从源代码托管到开发运维的全栈式一体化DevOps SaaS平台与企业级专家咨询服务。
Jenkins是一个开源软件项目,是基于Java开发的一种持续集成工具,用于监控持续重复的工作,旨在提供一个开放易用的软件平台,使软件项目可以进行持续集成。
配置 GitLab
API token获取:GitLab用户创建访问令牌
配置 Git
Git的路径可以通过which git获取
新建任务
构建任务
Jenkins 搭建
Jenkins 搭建(Ubuntu 篇)
环境:Ubuntu 20.04 LTS
安装 Jenkins
Debian Jenkins Packages
This is the Debian package repository of Jenkins to automate installation and upgrade. To use this repository, first add the key to your system:
1curl -fsSL https://pkg.jenkins.io/debian-stable/jenkins.io.key | sudo tee /usr/share/keyrings/jenkins-keyring.asc > /dev/null
Then add a Jenkins apt repository entry:
1echo deb [signed-by=/usr/share/keyrings/jenkins-keyring.asc] https://pkg.jenkins.io/debian-stable binary/ | ...
GitLab 搭建
官方文档:https://about.gitlab.cn/install/
GitLab 搭建(Ubuntu 篇)
环境:Ubuntu 20.04 LTS
1.安装和配置必须的依赖项
12sudo apt-get updatesudo apt-get install -y curl openssh-server ca-certificates tzdata perl
2.下载 GitLab 安装包并安装
1234567891011121314# 下载相应 Ubuntu 版本的安装包# Ubuntu 16.04 wget https://omnibus.gitlab.cn/ubuntu/xenial/gitlab-jh_14.8.2-jh.0_amd64.deb# Ubuntu 18.04 wget https://omnibus.gitlab.cn/ubuntu/bionic/gitlab-jh_14.8.2-jh.0_amd64.deb# Ubuntu 20.04 wget https://omnibus.gitlab.cn/ubuntu/focal/gitlab-jh_14. ...
什么是 CI/CD
原文:https://dzone.com/articles/what-is-cicd
译文:https://blog.csdn.net/weixin_44903147/article/details/96291588
一、简介
CI / CD的采用改变了开发人员和测试人员如何发布软件。
最初是瀑布模型,后来是敏捷开发,现在是DevOps,这是现代开发人员构建出色的产品的技术路线。随着DevOps的兴起,出现了持续集成(Continuous Integration)、持续交付(Continuous Delivery) 、持续部署(Continuous Deployment) 的新方法。传统的软件开发和交付方法正在迅速变得过时。从历史上看,在敏捷时代,大多数公司会每月,每季度,每两年甚至每年发布部署/发布软件。然而,现在是 DevOps 时代,每周,每天,甚至每天多次是常态。当SaaS正在占领世界时,尤其如此,您可以轻松地动态更新应用程序,而无需强迫客户下载新组件。很多时候,他们甚至都不会意识到正在发生变化。开发团队通过软件交付流水线(Pipeline)实现自动化,以缩短交付周期,大 ...