• QT:QT SDK,QT creator/IDE

 

  • 项目

分类:分为widget界面,console控制台,quick新界面(QML与C++解耦)

文件结构:

widget:项目主配置.pro,类(头文件.h,源文件.cpp,界面.ui)

quick:

 

  • UI

QT界面类/对象:窗体、按钮;要include <对象>才能使用

按钮槽slots(方法),信号signals(方法):跳转,::调用类方法

  • 面向对象分析:

窗口对象,属性是窗口内的部件;

通过指针将部件类作为属性,只需前置声明,不需完整include,在源文件中include即可。

在源文件中实现部件类

  • 跳转方法

推荐:构造方法内connect信号+槽:只需声明方法,最后在构造方法中connect

    (面向方法,方法名自由,手动connect)

右键按钮-转到槽:点击即调用方法,方法名即点击名

    (面向点击,方法名安装qt规范,qt自动connect信号)

下方+-(不会生成代码,无法调试)

设计模式上方按钮(无法精确指定,如菜单栏的子项)

连接/跳转:按钮类,发射信号,接受类,执行槽方法

menu跳转dialog:action,信号trigger,槽,.h声明父类QDialog,.cpp new子类MyDialog(多继承QDialog,Ui::)

.h中必须有此属性,.cpp实例化(继承Ui::)原因?button跳转dialog无此要求。

User Interface Compiler (uic):reads the .ui file,creates a corresponding C++ header file, ui_notepad.h

 

  • code

QT技巧

代码补齐:ctrl + 空格键——改为alt + /

帮助文档:F1,导入官方文档.qch

C++知识

创建对象方式:Test test1(); Test *test1 = new Test();(new返回的是指针)

内存分配方式:

1.静态分配:全局变量、static变量,程序整个运行期间

2.栈:函数内局部变量,函数结束后自动回收,分配内存有限,Test test1();

3.堆:自己malloc或new任意大小内存,自己free或delete释放

指针*,引用&

读取xml:相对路径、绝对路径;元素遍历

制作安装包:release exe,msvc windeployqt.exe自动找dll(windeployqt.exe D:\exmple.exe)

网络编程模块,.pro:QT+=模块名,如network

ssh 上传服务器

按URL下载

安装包;版本控制文件,用户配置文件

 

  • build:debug,release

制作安装包:

1、自动收集release依赖:msvc的windeployqt.exe

windeployqt --release --qml --qmldir D:\src\qml\huorong\源码路径 huorong.exe

*若使用qt installer,需按照规定的文件结构。看example,模仿创建项目结构,依赖放入项目目录packages\..\data。

2、创建安装包:NINS或者binarycreator.exe

可以通过NINS、NINS edit来创建安装包,需要licence.txt和所有dll。

binarycreator -c config/config.xml -p packages [生成的安装程序exe文件名] -v

注:设置环境变量bin,或者指定制定exe路径

 

  • dll创建、调用

创建C++库,(qglobal,export/import),build构建h, lib, dll三个文件

隐式调用(.h, .dll, .lib):指定三个文件的位置(include h,link lib;运行根目录dll)显式调用(.h, .dll, 缺.lib)

参考:

https://blog.csdn.net/naibozhuan3744/article/details/78926110

https://blog.csdn.net/u013015629/article/details/54405778

https://wiki.qt.io/How_to_create_a_library_with_Qt_and_use_it_in_an_application

 

  • 软件更新功能实现

版本配置,下载读取,安装包/补丁

补丁:WiX Toolset静默安装

配置文件:xml,ini

网络传输协议:http,安全ssh,tcp,udp

软件更新策略:覆盖软件,保留用户配置文件

参考:https://blog.csdn.net/song_0962/article/details/2508021

https://blog.csdn.net/zhaori/article/details/7444940

 

  • 采坑总结:

问题:button.setText(汉字)奇数个编译报错“常量中有换行符”。

使用notepad设置UTF-8-BOM编码。

问题:编译不报错,界面显示乱码。

setText(u8"汉字")

 

参考:

http://www.qter.org/portal.php?mod=view&aid=29&page=3

http://doc.qt.io/

https://blog.csdn.net/qq_32768743/article/details/80871697

https://blog.csdn.net/liukang325/article/details/52297036

http://blog.sina.com.cn/s/blog_a6fb6cc90101fer8.html

https://blog.csdn.net/sinat_21107433/article/details/80150575

https://blog.csdn.net/wing_7/article/details/79391820

https://stackoverflow.com/questions/205830/windows-automatic-software-updates

 

Logo

CSDN联合极客时间,共同打造面向开发者的精品内容学习社区,助力成长!

更多推荐