需要云服务器等云产品来学习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内置的类,就可以达到对现有控件功能进行扩展。(继承后重写类方法)
三、使用控件显示hello world
1、QLineEdit(单行文本输入框)
2、PushButton(按钮)
代码中通过这个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窗口坐标体系
坐标体系:以左上角为原点(0,0),X向右增加,Y向下增加。
Qt某个控件的坐标原点,由其父控件决定: