C++及QT5.12.6学习日记第一周(3.1-3.7)

目录

第一天3.1 星期三

第二天3.2 星期四

第三天3.3 星期五

第四天3.4 星期六

第五天3.5 星期日

第六天3.6 星期一

第七天3.7  星期二

本周总结:


第一天3.1 星期三

软件安装与环境配置V

C++常用编译器有:DevC++、VC++6.0、Visual Studio等 

安装Visual Studio2017、Qt5.12.6、QGIS3.22.16(以备以后GIS开发时使用)

遇到的问题与经验:

1.在Visual Studio2017中无法打开某一个库d8f9a6461a434796bd6d5bbd7ba5baf4.png

 2.在Qtcreater中无法打开某一个库,添加系统环境变量

266026bc44054fa2aeb3b55a416fad7e.png

 3.文件中可能会缺少Windows Kits下的库,它在安装VS时会同步安装,注意它可能不在C盘,其他盘也要多找找;倘若都没有,可使用Visual Studio Installer重新进行安装,或用独立安装包进行安装

e70431db3fd04d8bb896e90180b44ca6.png

4.功能测试宏的问题

5a2200919df74496823c9c6e254c66d2.png 5. qt的安装:注意组件的选择

跳过登录界面可以断网   

第二天3.2 星期四

今日完成了所有环境的配置和安装,并了解了一些简单的变形监测软件的模式;同时也询问老师得知了在C++环境下的GIS开发将使用QGIS模式,目前可知的GIS开发模式如下(有待补充):

1.传统AE开发:Arcgis+Arcgis engine+VS

2.宏开发模式:Arcgis+VB/Python(内置)

3.Python开发模式:arcpy+pyqt+pycharm

4.WebGIs开发模式:

        1)接口调用:html5+css3+js+ ArcGIS API for JavaScript(或其他api) + Arccatolog

                                +vue/react/angular   +  ARCGIS server(或其他服务器)

        2)开源模式:openlayers/leaflet + (layui) + geoserver + postGIS

        3)补充:Dojo ,  Layui,  node.Js+express,  postgreSQL,   cesium等等

5.QGIS模式:qgis + qt + vs + mysql/sqlite

遇到的问题:

1.如遇到中文无法显示的问题,可进行修改编码,修改编码可用记事本打开另存为/记事本保存+命令行/使用utf8插件

aa9dc489cd3c4ae08d7dff0fbe12358a.png

2. 无法打开Ui文件,右键选择打开方式,添加一个新的打开方式designer

a42a62d6b28f4ab5b193796226726338.png

3. 在Qt项目创建前/创建过程中可进行添加模块,若不添加也可以include库,但需要在前面加上文件夹名

df4f55de58c749dc88eb1b116a368811.png

ed10b7ab276b4d898fd27fe73fedbd3f.png

4.QT中报错:添加环境变量到配置选项卡中;设置全英文路径;

5.QT中感叹号kits:配置debuugers   

e8fd8a330cbd4ed39a737c6c7e605f4e.png

6.qt中在工具图表中的环境变量中配置include和lib,其内容包括但不限于:

C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\shared;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\ucrt;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\um;C:\Program Files (x86)\Windows Kits\10\Include\10.0.17763.0\winrt;C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\Include\um;

C:\Program Files (x86)\Windows Kits\NETFXSDK\4.6.1\Lib\um\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt_enclave\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\ucrt\x64;C:\Program Files (x86)\Windows Kits\10\Lib\10.0.17763.0\um\x64;

E:\sofeware\qt5\5.12.6\msvc2017_64\lib

E:\sofeware\qt5\5.12.6\msvc2017_64\include

第三天3.3 星期五

今天重新安装了qgis,深刻学习了变形监测软件的使用,同时学习了QT的基础操作

遇到的问题:

1.在VS中对qgis的配置

(1)配置环境

ae06ba482dfb4b5e9e7539ec041f2cf2.png

PATH=E:\sofeware\QGIS 3.22.16\bin;E:\sofeware\QGIS 3.22.16\apps\qgis-ltr\bin;E:\sofeware\QGIS 3.22.16\apps\Qt5\bin

$(LocalDebuggerEnvironment)

(2)链接器

3b3888f89b8a451fa33c2cd7bac103d0.png

qgis_core.lib

qgis_app.lib

qgis_gui.lib

Qt5Core.lib

Qt5Gui.lib

Qt5Widgets.lib

(3)预处理器

_USE_MATH_DEFINES

ef47cf01931e41d7b8ad83319309a429.png

(4)包含目录和库目录

a4d6b6353c674b3795ee93a47c111cb9.png

615ed71bcdfa4e6f9c1d4d7739675062.png

E:\sofeware\QGIS 3.22.16\apps\qgis-ltr-dev\include

E:\sofeware\QGIS 3.22.16\apps\Qt5\include

E:\sofeware\QGIS 3.22.16\apps\Qt5\include\QtWidgets

E:\sofeware\QGIS 3.22.16\apps\Qt5\include\QtGui

E:\sofeware\QGIS 3.22.16\apps\Qt5\include\QtCore

E:\sofeware\QGIS 3.22.16\apps\Qt5\include\QtXml

E:\sofeware\QGIS 3.22.16\apps\Qt5\lib

E:\sofeware\QGIS 3.22.16\apps\qgis-ltr-dev\lib

2.QT安装后环境变量的配置

qt安装后环境变量的配置:

378e631d81764c25a8ed718d72580371.png

eba612733cd3493da6bf8fa7d68d2f4d.png

path中添加:

C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\x64

C:\Program Files (x86)\Windows Kits\10\bin\10.0.17763.0\arm64 

3.重点:缺少文件,使用VS一定要修改SDK版本

49b58d9b5ff742869f70a1ca7fd0128c.png

4.报错无法打开文件…   一般需要引库

5.报错unrecognized token  一般是含有中文字符

第四天3.4 星期六

今天跟老师谈论了开发软件的问题,同时也成功注册了chatGPT,完成了页面的简单设计

遇到的问题:

1.一般来说,返回值为0代表函数正常运行,为非0代表函数异常

2.qt的转到槽函数:可直接编写控件;对于转不到槽的可进行连接  ,在create中有转到槽

3.pro可用create打开,用VS转化后的要手动添加各个需要使用的模块

4.中文前加u8可转化为utf-8

5.转到槽构建click槽函数

6.添加图片:改变样式表-添加资源

7.没有layout属性--选择栅格化控件

8.QWidget#centralwidget{background-color:#001871;};  为边界添加颜色

9.常看API进行编程,*parent即为调用自己

10.ui设计时,出现的默认的文字无法删除的可能是头,在ui界面的属性中进行隐藏

#所谓的模块,就是一个文件夹,若不添加,会导致很多#include不能用
#加载模块   core核心模块    gui界面模块
QT       += core gui#当Qt版本大于4     Qt5需要加上widgets模块
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets#配置 C++   让qt支持C++11的语法规则
CONFIG += c++11#使用过时的函数会产生警告
# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS#使用过时的函数会产生报错
# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0#项目里面的源文件,以下三个都不能手动删除
SOURCES += \main.cpp \widget.cpp#项目里的头文件
HEADERS += \widget.h#项目里的ui文件
FORMS += \widget.ui#后面的没有用,可删除
# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin  #嵌入式平台
else: unix:!android: target.path = /opt/$${TARGET}/bin #uinx平台
!isEmpty(target.path): INSTALLS += target

头文件wiget.h

#ifndef WIDGET_H
#define WIDGET_H#include <QWidget>QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACEclass Widget : public QWidget   //自己定义的类继承于系统的基类
{Q_OBJECT    //使用信号与槽必须包含的一个宏public:Widget(QWidget *parent = nullptr); //构造函数,有一个空指针~Widget();//析构函数private:Ui::Widget *ui;     //命名空间UI下的Widget类定义指针ui
};
#endif // WIDGET_H

main.cpp

#include "widget.h"         //包含我们自己写的类的头文件#include <QApplication>     //应用程序类int main(int argc, char *argv[])//main函数,有且只能有一个
{QApplication a(argc, argv);//创建一个应用程序类,必须要有,且只能有一个Widget w;               //创建窗口对象w.show();               //手动显示窗口//while(1);return a.exec();       //应用程序消息循环,相当于while,消息处理,消息监听
}/* ctrl+R 运行*/

wiget.cpp

#include "widget.h"     //包含自己的头文件
#include "ui_widget.h"  //界面的头文件Widget::Widget(QWidget *parent)//构造函数: QWidget(parent)   //:为构造函数的初始化列表//给基类(父类)传一个对象parent, ui(new Ui::Widget)//把刚才的指针new过去
{ui->setupUi(this);//调用函数setupUi,并把自身设置进去
}Widget::~Widget()//析构函数
{delete ui;
}

第五天3.5 星期日

今天第一次使用数据库和代码程序进行编程:
        1.SQL语句的基本规范,可先在notepad++中格式化编写,然后再导入到数据库软件中

        2.编程开发学习的基本方法

                1)看例子

                2)查百度

                3)查帮助文档/API

        3.灵活使用帮助文档,以qt5为例

        22d2925f69a34a10956cd35f2c4a694d.png

 遇到的问题:

11.指针定义的时候带*,用的时候不用带*

12.数据库的构建,用命令行输入代码即可构建库

13.活用模板,看布局,看逻辑

14.undefined reference to `__imp__ZN12QSqlDatabase7driversEv‘,在pro文件中添加qt+=sql

15.variable has incomplete type 'QSqlQuery'    --没有导入头文件

16.注意同一个方法的不同参数定义,多看API

17.头文件里声明,源文件里定义

18.qDebug()<<可以在程序执行时的控制栏中打印true和false

19.使用#if 0  #endif 将这段代码封上,以备以后使用

20.sql.exec意为在数据库中执行该SQL语句,是数据库编程中的常用函数

第六天3.6 星期一

今天重新安装了qt6版本,qt的新版本均使用在线安装的方式,这样可以方便管理多个QT版本,并且可随时更新安装;

主要是完成基本功能的构建,得知了框架的搭建过程:

1.先声明再定义

2.注意返回值类型

3.SQL语句写的时候要仔细

遇到的问题:

21.%1  %2这些为数据库中信息,占位符

22.函数如果用void定义,则会报错没有返回值,那么就加上返回值(改函数类型修改为bool)

23.写SQL语句时的各个属性间一定要加,studentid=%5,phone='%6',

24.注意数据库添加时空格的问题,最好不要有空格,空格也会被数据库记录为字符

25.声明时函数前没有stuSql::,但定义时就有了,为系统自动生成

26.sql.next

27.auto

28.数据库中若是字符串一定要代' '

29..tar.xz为liunx系统中的压缩包文件

30.灵活运用给的找错函数和qDebug的结合,找出未发现的错误,如下所示

bool stuSql::updateUser(userInfo info)
{QSqlQuery sql(m_db);QString strsql = QString("update username set password='%1',auth='%2' where username='%3'").arg(info.password).arg(info.auth).arg(info.username);bool ret = sql.exec(strsql);QSqlError e = sql.lastError();if(e.isValid()){qDebug()<<e.text();}return ret;
}

第七天3.7  星期二

今天重点学习了css,并将程序的界面进一步优化

遇到的问题:

31.声明了变量就应该赶快定义,不然容易报错

32.注意要将css文件放在应用程序同级目录(Debug/relese)而不是工程文件目录
33.文件名称一定要带引号"   eg.  stuqss.css"
34.qtdesigner中的样式表优先级比外接css中的高
35.通过给一组控件加上通用的动态属性,方便对其样式表的添加
36.vscode注释:先按CTRL+K,再按CTRL+U
37.做UI设计时找一些好的开源ui库进行参考,如Flat UI,Element UI
38.QT Creator经常用着用着就未响应,原因是网易有道词典中滑动取词功能与QtCreator冲突
39.数据表中经常需要水平扩充,在QT designer中的属性后勾选√

 40.隐藏每一行数据前的数字

本周总结:

1.这一周是第一次写笔记多学的东西进行记录,多有不足之处

2.本周主要是包括qt、VS、qgis等软件的安装和配置,主要记录安装、配置过程中遇到的种种问题

3.学习了数据库的配置与链接以及样式表css的添加

4.初步学习了chatGPT等人工智能软件的使用

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/15462.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt+html+JavaScript实现类似QQ聊天界面的气泡效果

这是一个简单的类似QQ聊天界面的Demo&#xff0c;用Qt实现&#xff0c;在QWebView里嵌入网页的方式实现。先看效果图&#xff1a; 无论怎样&#xff0c;我觉得自己动手写出来的东西才是自己的&#xff0c;所以源码不全&#xff0c;重点的代码我会放上来。只是模拟实现了两个…

基于Qt的聊天软件设计实现手把手教学——高仿QQUI设计(一)

文章目录 前言一、使用工具1. Qt Creator 二、项目介绍1.客户端1.1 Socket套接字 2.服务端2.1 数据库2.2 数据处理 3.效果图4.总体系统架构图 小结 前言 最近想把自己毕业设计拿出来分享&#xff0c;我是做了一个可以通过局域网聊天的一个聊天软件。UI设计方面我也是尽力往QQ方…

基于QML模拟QQ群聊窗口

据说最近要开发简单的IM工具,于是兴起,研究了下QQ聊天窗口,大概模拟了一下群聊的聊天显示界面,遂与大家分享之 画面粗糙还望海涵 图片有点大,原理基本就是使用listview来显示每一条记录,别人的记录显示在左侧,自己的聊天记录显示在右侧,但是他们公用的一个内容控件 贴下…

❤️Java实现模拟QQ(消息通信+登陆界面美化)❤️

一、登陆界面的实现 登陆界面主要使用了JFrame&#xff0c;以及相关的一些组件&#xff0c;并且在界面中加上监听 登陆界面效果图 登陆界面代码Login类 package com.lding.login;import com.lding.ui.MsgUI;import javax.swing.*; import java.awt.*; import java.io.IOExce…

QT qq登陆界面设计

使用C结合Qt设计的类似QQ的登录界面&#xff0c;以Ui以及代码结合的方式实现&#xff0c;实现了账号注册、号密对比等功能。先看看效果图&#xff1a; 登录界面&#xff1a; 注册界面&#xff1a; 一共有两个窗口&#xff0c;通过槽函数绑定按钮来显示弹窗&#xff08;注册界面…

QT学习之QQ聊天案例

1、实现功能 本程序模拟实现QQ群聊功能&#xff0c;采用UDP通信方式&#xff0c;可以设置字体&#xff0c;保存聊天记录等&#xff0c;实时显示上线离开人数以及具体人员。可视为简化版的腾讯QQ。目前只有群聊&#xff0c;未实现一对一单独聊天。 完整源代码见&#xff1a;ht…

【教学类-36-01】Midjounery生成的四张图片切片成四张小图

作品展示&#xff1a; 把一张正方形图片的四个等大小图切割成四张图片 背景需求 最近在学习ChatGPT的绘画&#xff08;midjounery AI艺术&#xff09; 我想给中班孩子找卡通动物图片&#xff08;黑白线条&#xff09;&#xff0c;打印下来&#xff0c;孩子们练习描边、涂色…

chatgpt赋能python:Python校验身份证号码真伪

Python校验身份证号码真伪 身份证号码是我们日常生活中非常重要的证件&#xff0c;但也有一些人从事非法活动&#xff0c;对身份证号码进行伪造或者篡改。为了保护公民的合法权益&#xff0c;我们需要使用技术手段来校验身份证号码真伪。而Python作为一种广泛应用于数据处理和…

【科普级别:刚出炉的ChatGPT三连问】

科普级别&#xff1a;刚出炉的ChatGPT三连问 前言【ChatGPT是什么&#xff1f;对我们的生活有什么影响&#xff1f;】【中国为什么不能使用ChatGPT&#xff1f;美国想让中国用户使用吗&#xff1f;】【通义千问、文心一言、ChatGPT你更看好哪一个&#xff1f;】 前言 有些人连C…

又一个国内类ChatGPT模型?【秘塔科技上线自研LLM大模型「对话写作猫」】

又一个国内类ChatGPT模型&#xff1f;【秘塔科技上线自研LLM大模型「对话写作猫」】 &#xff08;马上被打脸 ~ ~&#xff09; 一直期待中国有没有类ChatGPT产品可以出现。 昨天&#xff0c;2023年2月27日&#xff0c;秘塔科技上线了自研LLM大模型「对话写作猫」&#xff0c;…

小白入门区块链(通俗易懂)

区块链基础入门 什么是区块链 科技层面解释 数学&#xff0c;密码学&#xff0c;互联网&#xff0c;计算机编程官方解释 区块链是一个分布式的共享账本和数据库&#xff0c;具有去中心化&#xff0c;不可篡改&#xff0c;全程留痕&#xff0c;可以追溯&#xff0c;集体维护&am…

2023年加密行业会更难吗?欧科云链研究院“七大趋势预测”

回望2022&#xff0c;加密行业遭遇了种种不可控因素而导致的艰难险阻&#xff0c;也在变革与发展中孕育着生机与活力。 这一年&#xff0c;我们亲眼目睹了Luna暴雷&#xff0c;三箭资本、FTX这些曾经被认为“大而不倒”的机构接连倒下&#xff0c;市场信心严重受挫&#xff1b…

​别急着骂百度,来看看大模型到底怎么用

文&#xff5c;光锥智能&#xff0c;作者&#xff5c;周文斌&#xff0c;编辑&#xff5c;王一粟 GPT-4惊艳亮相后&#xff0c;压力来到百度这边。 上台后的李彦宏和百度CTO王海峰都略显紧张&#xff0c;这在多年百度相关活动中还是非常少见。李彦宏坦言&#xff0c;“文心一言…

Node.js 高级编程之 Stream(我是跟 ChatGPT 学会的)

前言 在做 SSR Stream Render 的时候遇到了 Node.js 的 Stream&#xff0c;但是对其总是一知半解。正好最近 ChatGPT 很火&#xff0c;找他学一学吧&#xff0c;没想到真的把我教会了。PS&#xff1a;文末有跟 ChatGPT 的精彩对话&#xff08;请忽略我稀烂的英语&#xff09;。…

《不想放水》

原创&#xff1a;刘教链 * * * 由刘教链和ChatGPT共同填词。原曲&#xff1a;S.H.E.《不想长大》。 为什么就是找不到放水的证据呀 为什么救助的银行都不愿退市啊 我并不希望他拥有比特币和黄金 我惊讶的是假话竟然会变成谎话 为什么美元印钞机要转的那么快 为什么通胀和失业率…

存储器介绍

文章目录 存储系统基本概念存储器的层次存储器的分类存储器的性能指标 主存储器半导体元件的原理存储芯片的基本原理寻址 DRAM和SRAMDRAM的刷新DRAM的地址复用 只读存储器ROM主存储器和CPU的连接位扩展字扩展字位同时扩展补充 双端口RAM和多模块存储器双端口RAM解决多核CPU访存…

OpenAI文档翻译——在不通的场景下如何更好的设计ChatGPT提示词

概述 OpenAI可以被广泛的应用于各种任务&#xff0c;他为各种模型提供使用简单而功能强大的API。你可以输入一些文本作为提示词&#xff0c;OpenAI则会生成对应的提示词补全&#xff0c;在使用过程中这就是会话形式以及能够记住上下文的体现。探索如何生成提示词的最好方法就是…

如何使用ChatGPT 写官方声明?

上海车展宝马Mini展台被指区别对待中外访客&#xff0c;向外国访客送冰淇淋&#xff0c;中国访客索要时则说“没有”&#xff0c;此事引发争议。 对此&#xff0c;宝马官方也发布了官方致歉声明&#xff0c;网友看到声明后&#xff0c;纷纷发布自己的看法&#xff0c;有网友还…

独家专访:OpenAI 的 Sam Altman 谈 ChatGPT 以及通用人工智能如何“打破资本主义”

来源: AI前线 作为 OpenAI 的首席执行官&#xff0c;Sam Altman 领导的这家初创公司是正在快速增长的生成式 AI 行业中最热门且最受关注的一家。在 1 月中旬参观了 OpenAI 的旧金山办事处后&#xff0c;福布斯采访了这位最近不太愿意在媒体上抛头露面的投资者和企业家&#x…

ChatGPT is not all you need,一文看尽SOTA生成式AI模型:6大公司9大类别21个模型全回顾(三)

文章目录 ChatGPT is not all you need&#xff0c;一文看尽SOTA生成式AI模型&#xff1a;6大公司9大类别21个模型全回顾&#xff08;三&#xff09;Text-to-Text 模型ChatGPTLaMDAPEERMeta AI Speech from Brain Text-to-Code 模型CodexAlphacode Text-to-Science 模型Galacti…