QT:基础概念操作

文章目录

我们在构造中写入label,可以用对象树方式创建。栈的方式不能进行文本构造,因为调用析构

这里不用对象树delete,不用担心内存泄漏,因为他在对象树上

这样的好处可以统一释放所有的对象。

不能Lable label 之间构造,因为调用了析构

乱码

乱码是编码方式不匹配

表示汉字的字符集有很多,不统一,

最常用有两种方式

1GBK---2个字节表示一个汉字

2utf8-----2-4个字节,一般是三个字节

这里是3,linux默认使用utf-8

字符串和控制台的编码方式不一样

这里可以使用Qstring进行处理,打印日志可以用qDebug

推荐用new方法堆的方式创建对象

统一释放对象,构造函数中指定父对象,这样才会挂到对象树上

没挂对象树要手动释放

按钮方式实现

使用编辑框来完成hello world

代码方式

按钮和信号槽

点击可以执行处理函数


指定的obectName的名字是唯一的,这个名字就是buttton名字

命名

用下划线划分不同单词

unordered_map

priority_queue

大写字母分隔

studentCount---小驼峰--变量/函数

QApplication---大驼峰---类命名

查询文档

光标放到文字上面直接按f1

也有安装的QTAssistant和linux中man 查手册差不多

QT的坐标体系

我们从小都学过平面直角坐标系,QT类似但是不一样

(0,0)处就是屏幕的左上角

子控件是基于父控件的坐标点来进行操作的,没有父元素的在桌面

move函数可以移动控件的位置move的参数是像素

move(200,300)就是水平移动200,垂直移动300.

this.move()也可以移动wegit

信号和槽

linux的信号是系统内部的通知的机制,进程之间的通信方式

信号源:谁发的信号

信号的类型:哪种类别的信号

信号的处理方式:注册信号的处理函数,触发时候自动调用

QT中的信号:

所谓的槽函数是回调函数,一个信号和一个槽关联起来

37

QWidget(控件)有许多子类QPushButton.QlineEdit...

QObject 是QWidget的类

connect

有五个参数,最后一个有默认

前四个参数分别是信号哪个空间发出,信号类型,哪个对象负责处理,该怎么处理

wiget->Qwiget->QObject

信号就是某些类它提供的成员函数

上面是solt函数,下面是信号

第二个参数必须是第一个对象的函数或父类的函数

同理第三个参数和第一个一样

第四个参数原理和第二个一样,要是slot函数

至于何种类有何种槽函数和操作函数就要查文档

也可以查看父类,和父父类

QAbstract

这里就是父类QAbstrct的信号

这里char 就是char,&函数()有不同类型,比如void ( )(), bool (*)()

在c++中不允许的,原本的connet要使用signal和slot宏来转换成char *()类型

QT5之后进行简化了,connect进行了重载,变成了泛型参数

这里带入参数检查的功能

自定义槽

我们如果不想用类中的方法,那么我们可以自定义槽函数

那么我们要在wegit类里自定义一个槽方法

以前必须放在public slots里,现在可以归结到一个public里

ui->pushbutton可以连接自己QTdesiner设计的按钮


这里就有clicked,点击可以直接生成定义和实现

这种实现方法是通过函数名触发的,可以跟connect效果一样,QT自动把信号和槽建立联系。
如果声明修改,无法匹配之后会提示:

自定义信号

槽函数的定义很常见

自定义信号很少见,QT内置的信号已经可以覆盖大部分场景

信号是一个特殊的函数

程序员只要写出声明,编译过程中定义自动生成,程序员不能干预

1返回值必须是void

2没有参数也可以,支持重载

要在类中signals: 编写,和槽函数不同

但是我们连接之后要发出信号用emit 信号函数();

我们可以在构造中emit 也可以在某一个槽函数中emit

相关推荐
kimnoic28 分钟前
PHP 8.2的DNF类型怎么用才规范
开发语言·php
_Evan_Yao1 小时前
前后端联调怎么排查问题?从 Network 到后端日志,一步步定位错误
开发语言·后端·团队开发·需求分析
hudd6681 小时前
JavaEE 初阶 - 多线程(进阶)
java·开发语言·java-ee
小白快快跑哦1 小时前
python-字符串全解(六):正则表达式-前后相断言
开发语言·python·正则表达式·前后相断言
kimnoic1 小时前
Python数据分析中正则表达式匹配字符串与常用函数示例详解
开发语言·python
中屹指纹浏览器svip1 小时前
打开账号环境网页报错,常见原因有哪些?
服务器·开发语言·php·中屹指纹浏览器
朝朝辞暮i2 小时前
第 01 讲:Python 变量、对象、数据类型与内存引用
开发语言·python
外收内放2 小时前
Python基础语法练习题(69)
开发语言·python
lojox2 小时前
深入理解 C++ STL:vector 底层实现、迭代器失效与 list 特性
开发语言·c++
iotxiaohu2 小时前
用 cflow 查看 C 函数调用关系
c语言·开发语言·cflow