欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

踩坑总结:安装使用QT

程序员文章站 2022-03-10 21:45:14
...
  • QT:QT SDK,QT creator/IDE

 

  • 项目

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

文件结构:

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

quick:

 

  • UI

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

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

  • 面向对象分析:

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

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

踩坑总结:安装使用QT

在源文件中实现部件类

踩坑总结:安装使用QT

  • 跳转方法

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

    (面向方法,方法名*,手动connect)

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

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

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

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

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

踩坑总结:安装使用QT

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路径

 

  • 采坑总结:

问题: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

 

相关标签: qt