当前位置: 首页 > news >正文

【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. 总结

在这里插入图片描述
在这里插入图片描述


http://www.mrgr.cn/news/15814.html

相关文章:

  • 代码随想录算法训练营第三十一天|56. 合并区间 738.单调递增的数字
  • python脚本开头怎么写
  • PTA L1-028 判断素数
  • 指针进阶(多级指针)
  • C语言入门基础知识(持续更新中)
  • 第十四章 rust集合库介绍
  • JS模块化
  • Redis缓存穿透、缓存击穿与缓存雪崩的详细讲解和案例示范
  • Django+Vue花卉商城系统的设计与实现
  • 逐行输出三个顺序表中共同存在的元素
  • winform中chart的Axis.LabelStyle 属性
  • sqlite数据插入效率
  • 集成电路学习:什么是CRC循环冗余校验
  • cucumber 怎么启动API
  • 对mozjpeg中的函数名进行替换
  • 用矩阵乘法的底层原理来理解“特征融合”
  • Android强制设置所有应用显示方向,忽略应用本身的设置
  • 【面试题系列Vue06】Vue 单页应用与多页应用的区别
  • 损失函数、成本函数cost 、最大似然估计
  • 五,Spring Boot中的 Spring initializr 的使用