本文主要是介绍【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. 总结
这篇关于【Test 006】用图形化和代码的方式实现简单的Qt程序的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!