【Test 006】用图形化和代码的方式实现简单的Qt程序
文章目录
- 1. 通过图形化的方式实现🍎
- 2. 通过代码的方式实现
- 3. Qt 关于内存泄露相关
- 4. 如何证明它自动调用 new ,统一销毁
- 5. 乱码问题分析
- 7. 总结
1. 通过图形化的方式实现🍎
- 在界面创建出一个控件,显示
hello world,通过拖拽的方式实现;

widget.ui文件如下:🔍

- 生成的
ui_widget.h文件的setupUi如下:

2. 通过代码的方式实现
-
🐧通过编写代码,在界面上创建控件,显示
hello world; -
🐧通过代码来构造界面的时候,通常会把构造界面的代码放到
Widget/MainWindow的构造函数中;

label,标签,界面上用来显示内容的字符串控件;
QLabel* label = new QLabel(); //创建对象时,可以在堆、栈上面创建;
》下面表示,label对象的父元素是这个Widget w;

-
注意: QString 和 std::string 之间可以很方便的相互切换,但是推荐使用 Qt的原生的 QString;
-
label->setText ( "hello world")


3. Qt 关于内存泄露相关
QLabel* label = new QLabel(this);
-
🐧 上面这行代码,
new了一个对象,但是没有delete,此时会内存泄露吗 ?


-
为什么不在栈上面创建呢 ? — 因为会提前销毁

Qt的对象树如下所示,使用对象树,可以把这些内容都组织起来,可以在合适的时候 (窗口关闭 / 销毁),把这些对象统一进行释放;

4. 如何证明它自动调用 new ,统一销毁
🐧小tips:按住 F4可以实现.h 和 .cpp文件之间的切换;




5. 乱码问题分析
》🐧 出现乱码的根本原因是:编码方式不匹配



qDebug,打印的调试日志是可以统一进行关闭的;🍎



7. 总结


