【Qt】对象树与坐标系


需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。


目录

[一、Qt Creator快捷键](#一、Qt Creator快捷键)

二、对象树

1、对象树的析构

2、自定义类的编写

[三、使用控件显示hello world](#三、使用控件显示hello world)

1、QLineEdit(单行文本输入框)

2、PushButton(按钮)

两种控制控件的方式

四、Qt窗口坐标体系


一、Qt Creator快捷键

• 注释:ctrl + /

• 运行:ctrl + R

• 编译:ctrl + B

• 字体缩放:ctrl + 鼠标滑轮

• 查找:ctrl + F

• 整行移动:ctrl + shift + ⬆/⬇

• 帮助文档:鼠标定位+F1

• 自动对齐:ctrl + i

• 同名之间的 .h 和 .cpp 的切换:F4

• 生成函数声明的对应定义: alt + enter

• ctrl +鼠标左键跳转定义 ,Alt+⬅️跳转回来

二、对象树

1、对象树的析构

cpp 复制代码
QLabel* label = new QLabel(this);

因为对象树,上述代码不主动调用delete,label对象在窗口关闭的时候会被析构释放。

如果这个变量是在栈上创建的,就可能出现"控件被提前释放的问题",这也是Qt喜欢在堆区申请空间的原因。

2、自定义类的编写

编写一个自定义类,需要在其构造函数中,指定父对象,这样通过自定义类构造的对象才会被挂到对象树上。(如果对象没有挂到对象树上,就必须手动释放资源,防止资源泄漏)

通过继承Qt内置的类,就可以达到对现有控件功能进行扩展。(继承后重写类方法)

三、使用控件显示hello world

1、QLineEdit(单行文本输入框)

2、PushButton(按钮)

代码中通过这个objectName来对控件进行控制。(ui->objectName来控制)

cpp 复制代码
void Widget::HandleClick()
{
    if (ui->pushButton->text() == QString("hello world")){
        ui->pushButton->setText("hello qt"); // 点击按钮后,变为hello qt
    }
    else {
        ui->pushButton->setText("hello world"); // 点击按钮后,变为hello world
    }
}

两种控制控件的方式

四、Qt窗口坐标体系

坐标体系:以左上角为原点(0,0),X向右增加,Y向下增加。

Qt某个控件的坐标原点,由其父控件决定:

相关推荐
她说..7 小时前
Java 对象相关高频面试题
java·开发语言·spring·java-ee
watson_pillow7 小时前
c++ 协程的初步理解
开发语言·c++
庞轩px7 小时前
深入理解 sleep() 与 wait():从基础到监视器队列
java·开发语言·线程··wait·sleep·监视器
故事和你918 小时前
洛谷-算法1-2-排序2
开发语言·数据结构·c++·算法·动态规划·图论
白毛大侠9 小时前
理解 Go 接口:eface 与 iface 的区别及动态性解析
开发语言·网络·golang
李昊哲小课9 小时前
Python办公自动化教程 - 第7章 综合实战案例 - 企业销售管理系统
开发语言·python·数据分析·excel·数据可视化·openpyxl
Hou'9 小时前
从0到1的C语言传奇之路
c语言·开发语言
黎相思9 小时前
音乐播放器
qt
不知名的老吴10 小时前
返回None还是空集合?防御式编程的关键细节
开发语言·python
Tanecious.10 小时前
蓝桥杯备赛:Day6-B-小紫的劣势博弈 (牛客周赛 Round 85)
c++·蓝桥杯