需要云服务器等云产品来学习Linux的同学可以移步/-->腾讯云<--/-->阿里云<--/-->华为云<--/官网,轻量型云服务器低至112元/年,新用户首次下单享超低折扣。
目录
? 注释:ctrl + /
? 运行:ctrl + R
? 编译:ctrl + B
? 字体缩放:ctrl + 鼠标滑轮
? 查找:ctrl + F
? 整行移动:ctrl + shift + ?/?
? 帮助文档:鼠标定位+F1
? 自动对齐:ctrl + i
? 同名之间的 .h 和 .cpp 的切换:F4
? 生成函数声明的对应定义: alt + enter
? ctrl +鼠标左键跳转定义 ,Alt+??跳转回来
QLabel* label = new QLabel(this);
因为对象树,上述代码不主动调用delete,label对象在窗口关闭的时候会被析构释放。
如果这个变量是在栈上创建的,就可能出现“控件被提前释放的问题”,这也是Qt喜欢在堆区申请空间的原因。
编写一个自定义类,需要在其构造函数中,指定父对象,这样通过自定义类构造的对象才会被挂到对象树上。(如果对象没有挂到对象树上,就必须手动释放资源,防止资源泄漏)
通过继承Qt内置的类,就可以达到对现有控件功能进行扩展。(继承后重写类方法)
代码中通过这个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
}
}
坐标体系:以左上角为原点(0,0),X向右增加,Y向下增加。
Qt某个控件的坐标原点,由其父控件决定: