【Qt】对象树与坐标系


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


目录

 一、Qt Creator快捷键

二、对象树

1、对象树的析构

2、自定义类的编写

三、使用控件显示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、对象树的析构

QLabel* label = new QLabel(this);

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

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

2、自定义类的编写

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

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

【Qt】对象树与坐标系_第1张图片

三、使用控件显示hello world

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

【Qt】对象树与坐标系_第2张图片

2、PushButton(按钮)

【Qt】对象树与坐标系_第3张图片

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

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】对象树与坐标系_第4张图片

四、Qt窗口坐标体系

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

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

【Qt】对象树与坐标系_第5张图片

【Qt】对象树与坐标系_第6张图片

你可能感兴趣的:(Qt,qt,开发语言,c++)