QT 初识:代码 / ui 实现界面操作、窗口坐标系(move)、快捷键、对象树

发布时间:2026/9/6 2:42:41
QT 初识:代码 / ui 实现界面操作、窗口坐标系(move)、快捷键、对象树 目录1.1 使用按钮实现QPushButton代码方式实现可视化操作实现ui 界面1.2 标签实现QLabel代码方式实现可视化操作实现ui 界面2.QT 窗口坐标体系move3. QT 编程注意事项3.1 Qt 中的命名规范 3.2 Qt Creator 中的快捷键 3.3 认识对象模型对象树4. 小结1.1 使用按钮实现QPushButton代码方式实现可视化操作实现ui 界面1.2 标签实现QLabel代码方式实现可视化操作实现ui 界面2.QT 窗口坐标体系move坐标体系以左上角为原点00X向右增加Y向下增加。对于嵌套窗口其坐标是相对于父窗口来说的。3. QT 编程注意事项3.1 Qt 中的命名规范 类名首字母大写单词和单词之间首字母大写函数名及变量名首字母小写单词和单词之间首字母大写Qt 偏好驼峰命名法大驼峰 / 小驼峰3.2 Qt Creator 中的快捷键 注释ctrl /运行ctrl R编译ctrl B字体缩放ctrl 鼠标滑轮查找ctrl F整行移动ctrl shift ⬆/⬇帮助文档F1自动对齐ctrl i同名之间的 .h 和 .cpp 的切换F4生成函数声明的对应定义alt enter3.3 认识对象模型对象树在 Qt 中创建很多对象的时候会提供一个 Parent 对象指针下面来解释这个 parent 到底是干什么的。 QObject 是以对象树的形式组织起来的。当创建一个 QObject 对象时会看到 QObject 的构造函数接收一个 QObject 指针作为参数这个参数就是 parent也就是父对象指针。这相当于在创建 QObject 对象时可以提供一个其父对象我们创建的这个 QObject 对象会自动添加到其父对象的 children() 列表。当父对象析构的时候这个列表中的所有对象也会被析构。注意这里的父对象并不是继承意义上的父类这种机制在 GUI 程序设计中相当有用。例如一个按钮有一个 QShortcut快捷键对象作为其子对象。当删除按钮的时候这个快捷键理应被删除。这是合理的。QWidget 是能够在屏幕上显示的一切组件的父类。QWidget 继承自 QObject因此也继承了这种对象树关系。一个孩子自动地成为父组件的一个子组件。因此它会显示在父组件的坐标系统中被父组件的边界剪裁。例如当用户关闭一个对话框的时候应用程序将其删除那么我们希望属于这个对话框的按钮、图标等应该一起被删除。事实就是如此因为这些都是对话框的子组件。当然我们也可以自己删除子对象它们会自动从其父对象列表中删除。比如当我们删除了一个工具栏时其所在的主窗口会自动将该工具栏从其子对象列表中删除并且自动调整屏幕显示。Qt 引入对象树的概念在一定程度上解决了内存问题。当一个 QObject 对象在堆上创建的时候Qt 会同时为其创建一个对象树。不过对象树中对象的顺序是没有定义的。这意味着销毁这些对象的顺序也是未定义的。任何对象树中的 QObject 对象 delete 的时候如果这个对象有 parent则自动将其从 parent 的 children() 列表中删除如果有孩子则自动 delete 每一个孩子。Qt 保证没有 QObject 会被 delete 两次这是由析构顺序决定的。4. 小结

相关新闻