目录
第一天3.8 星期三
遇到的问题:
41.可灵活使用QT designer中的的样式表进行颜色的选择
42.CheckBox自带的样式不太好做,大多数都是用图片做
43.弹簧如果感觉太大,可以在属性中选择最小
44.注意CSS中单词的拼写,因为选择器无法自动检查,所有最好从qt中直接复制
45.qt发布时可以选择两种样式表添加方式:
1)直接加到应用程序中,编译到exe中
2)外部资源加载:用rcc样式表制成二进制形式,调用函数把rcc的二进制文件加载进去
46.单例模式
1)单例的正确调用方式 stuSql *stuSql::ptrstuSql = nullptr;
47.C++编码的一个大忌
1)倘若写成了=则会出现空指针, 但系统并不会报错,所以要将常量放在前面
2)指针的命名要么是ptr要么是p,成员变量是m_
48.用同一项目中其他文件的结构体或类,需要新include那个文件
49.在qt中进行多行选择,按住alt,同一列的可以直接拖,不同列的要先点一下
50.若打开一个系统自带的源文件之后其只调用了一个头文件,那么就直接点开看那个头文件
第二天3.9 星期四
今天了解了库的构建与封装的流程:
1.在SQL软件中建立TABLE
2.在C++编译器中创建Class
3.搭好功能模块,设计接口
4.应用库中方法实现各个接口的封装
主要收获如下:
1.数据库在使用之前需要先初始化,但尽量不要把init放在构造里,在外面单独调要好一些
2.修bug时要想一些自己在原代码模板上做的修改,可能有些算法的改进会导致一些不必要的错误
3.很多地方的计数都是从0开始,倘若通过给原函数+1/-1等操作使得在某一个功能上成功计数从1开始,可能会使在其他功能对该函数的调用时因自行添加的+1/-1操作而产生不必要的后果
4.给主界面的边界处添加样式表:在QT designer中添加样式表
QWidget#centralwidget{background-color: rgb(0, 24, 113)};
5.在界面布局时,灵活使用Widget进行格栅化组合,在使用Widget时可以把默认带的格式化取消掉,方便后续的格式设计
6.一定要命名规范,包括类名,函数,变量,对象,组件
7.新建一个窗口/类的基本步骤:
1)设计窗口/设计类的逻辑流程
2)编写相关代码,实现基本框架
3)对调用区/主函数的头文件中引入该类的头文件
4)在调用区/主函数的头文件中编写成员变量
8.模态对话框:在一个窗口下打开新的前置窗口时,必须先操作完前置窗口才可以进入后置窗口进行操作
9. m_dlgAddStu.show(); //.show是启用非模态对话框
m_dlgAddStu.exec(); //.exec是启用模态对话框
10.一般为函数声明了,但未定义
第三天3.10 星期五
今天完成了学生管理系统软件的增删改的操作以及固定样式表的方法
收获如下:
11.Moc会进行自动将ui文件生成C++代码,但生成的表头的格式是转义,所以自己写表头
QT的MOC机制:将布局文件转化成C++的代码
12.写代码生成属性表的时候,除了要设置行以外,还必须要设置有多少列,不然无法生成属性表
13.焦点选择,可设置tab键按下后移动的格子位置
14.在数据库中添加数据后,即使删除了部分数据,再次添加时,其id也会自增
=>使用SQL语句:sql.exec(delete from sqlite_sequence where name = 'TableName')
15.以后在某些特定项目中还要有某些限制:
1)姓名需拆分成姓和名
2)学号要从1开始,且以班级为基础;某些学生被开除了,需如何修改学号
3)成绩曲线分布
16.QAbstractItemView::SelectRows意为QAbstractItemView类的SelectRows属性
17.调试的基本步骤:1)加断点 2)开始调试 3)F11跳到下一步 4)F5跳到下一个断点
18.功能复用:写一个if-else语句,例如增加和修改功能的复用
19.传id用全局变量m_info
20.样式添加时要把每个界面单独设计一个css文件,步骤如下:
1)添加文件
2)将所有资源文件添加进来
3)添加相关代码
QFile Fread;
Fread.setFileName(":/dlg.css");
Fread.open(QIODevice::ReadOnly); //设置为只读
QString strQss = Fread.readAll(); //读出所有东西,用一个字符串接受
m_dlgLogin.setStyleSheet(strQss);
Fread.close();
Fread.setFileName(":/main.css");
Fread.open(QIODevice::ReadOnly); //设置为只读
strQss = Fread.readAll();
this->setStyleSheet(strQss);
第四天3.11 星期六
今天将学生管理系统彻底完成,也熟悉了打包的操作、搜索功能的添加、C++代码的优化,也得知了C++
主要收获有:
21.在路径栏中输入cmd可打开cmd窗口并直接进入到该路径下
22.打包
1)修改数据库的路径,使用相对路径
//为方便用户,需设置获取当前应用程序的路径,使用一个str变量进行接收
auto str = QCoreApplication::applicationDirPath()+"/data.db";
//发布的时候将data.db文件放到程序的同级目录下即可运行
qDebug()<<str;
2)qt的bin路径下运行cmd,并输入windeployqt.exe,不要按回车
3)将程序文件中的debug文件夹中除了exe文件以外的所有文件都删掉
4)把exe文件直接拖到cmd中
5)将这三个库从bin文件夹复制到debug文件夹中
6)注意:打包的路径不能有中文
23.注意:写相对路径时一定要注意每一级文件夹前的/不要丢,多用debug+断点看看有什么问题
24.后期优化可以重写一些方法,让运行效率更高
25.各个软件更新方法:
1)Python/anaconda——均使用镜像和官网下载
2)qt——使用MaintenanceTool.exe(位于qt安装目录下)在线安装
3)vs——使用Visual Studio Installer在线安装
4)qgis——使用Setup(osgeo4w-setup.exe)在线安装
第五天3.12 星期日
今天完成了论文的AI阅读和PPT的AI制作,完成进行了一半的pcl库的安装,也略微了解了些CMake的使用
因而,这近两周12天的学习也就告一段落,从下周一开始将进行变形监测软件的编写
收货主要有:PCL的开发过程
一、安装pcl库
1.下载https://github.com/PointCloudLibrary/pcl/releases
下载PCL-1.12.1-AllInOne-msvc2019-win64.exe和pcl-1.12.1-pdb-msvc2019-win64.zip
1.安装PCL-1.12.1-AllInOne-msvc2019-win64.exe,要选配置环境变量,安装目录最好在C:\PCL1.12.1
2.卸载OpenNI-Windows-x64-2.2.msi,将其再次安装到C:\PCL1.12.1\3rdParty\OpenNI2
3.将pcl-1.12.1-pdb-msvc2019-win64.zip解压到C:\PCL1.12.1\3rdParty\OpenNI2下
4.配置环境变量
C:\PCL1.12.1\bin
C:\PCL1.12.1\3rdParty\VTK\bin
%PCL_ROOT%\3rdParty\FLANN\bin
%PCL_ROOT%\3rdParty\Qhull\bin
%PCL_ROOT%\include\pcl-1.12
%OPENNI2_REDIST64%
5.使用在C:\PCL1.12.1\bin文件夹下cmd输入pcl_viewer.exe+.pcd文件名进行运行
二、编译VTK
1.下载https://github.com/Kitware/VTK/tags
最好下载9.1.0的tar.gz
2.解压到C盘根目录下
3.官网下载CMake的.msi版本
4.打开cmakegui
5.把C:\VTK-9.1.0下的CMakeLists.txt拖到cmake中
6.在C:\VTK-9.1.0下新建一个build文件夹
7.让cmakegui指向这个文件夹
8.点击configure,选vs2019
9.注意红色的安装目录(很重要),然后再点一次configure
10.搜索qt,把value设置为yes,点configure
11.出现报错,选择qt的安装目录:E:\sofeware\QT\5.15.2\msvc2019_64\lib\cmake
如果不报错,把所有路径设置成E:\sofeware\QT\5.15.2\msvc2019_64\lib\cmake目录下的
12.再点configure,如果报错就再点
13.把vtk下qt的版本设置成5,勾选advanced,把所有的项设置成yes
14.点击generate,出现下图提示即可
15.点击open project,进入vs2019
16.点生成-批生成
17.选中debug和release两个版本,点生成
三、QtCreat中配置pcl VS一定要以管理员身份运行
1)打开VS,选中debug和release两个版本,点生成
2)将VTK文件夹替换掉C:\PCL1.12.1\3rdParty
3)在文件夹下新建pcl1.12.1.pri文件,把pcl相关的库都放在这个文件里
四、测试运行
1)新建Qt Widgets Application项目
2)在.Pro文件中添加include(C:/PCL1.12.1/pcl1.12.1.pri)
注:关于VS的配置之后会制作专栏汇总
本周总结:
1.本周完成了学生管理系统的构建,同时对qt开发软件界面的总体流程有了一个初步的认识
2.本周还进行了PCL库的简单配置