QT工程介绍

工程概述

MainWindows 还是 Widget
在这里插入图片描述
在Qt中,创建 MainWindowWidget 项目的主要区别在于他们的用途和功能范围

  • MainWindow:这是一个包含完整菜单栏、工具栏和状态栏的主窗口应用程序框架。它适合于更复
    杂的应用程序,需要这些额外的用户界面元素来提供丰富的功能和交互。
  • Widget:这通常是一个简单的窗口,没有内置的菜单栏、工具栏或状态栏。它适合于更简单或专用的应用程序,不需要复杂的用户界面组件。

简而言之,选择"MainWindow"或"Widget"取决于你的应用程序需要多少内置的用户界面元素和复杂性。 MainWindow提供了更全面的框架,而Widget则更适合简单、专注的界面。

QApplication

#include "widget.h"

#include <QApplication>

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);
    Widget w;
    w.show();
    return a.exec();
}

在QT应用程序中,QApplication a(argc, argv); 这行代码的作用是创建一个QApplication 类的实例。这是几乎每个Qt应用程序必须做的第一步,因为它负责应用程序的许多核心功能

下面整理了一个表格来总结 QApplication 类在Qt框架中的主要功能和职责:

功能说明
事件循环维护事件循环,负责接收和分发各种事件,如鼠标点击、键盘输入等。
全局设置处理应用程序的全局设置,包括字体、颜色和其他用户界面元素。
GUI的初始化在没有创建 QApplication 的情况下,无法使用Qt的任何GUI组件,因此它负责初始化GUI环境。
命令行参数处理可以处理命令行参数,这对于需要命令行交互的应用程序来说是必要的。

QApplication 是Qt应用程序的核心,它为应用程序提供了必要的环境和框架,确保GUI组件能够正常并响应用户的操作。

简而言之,QApplication a(argc, argv); 用于初始化Qt应用程序的环境,设置事件循环,并准备应用程序处理GUI事件。

return a.exec()

在Qt应用程序中,QApplication::exec() 函数是用来启动应用程序的事件循环的。当你调用这个函数时,他会开始处理和分发事件,如用户的点击,键盘输入灯。这个函数会一直运行,直到事件循环结束,通常是因为调用了 QApplication::quit() 函数或者关闭了应用程序的主窗口。简而言之,exec() 是QT程序中的主循环,负责监听和响应事件,保持应用程序运行直到用户决定退出。

namespace Ui { class Widget; }

在Qt框架中, namespace Ui { class Widget; } 是一种常见的用法,通常出现在使用Qt Designer设计GUI时自动生成的代码中。这里的 Ui 是一个命名空间,而 class Widget 是一个前向声明,它声明了一个名为 Widget 的类。这种做法允许你在 .cpp 源文件中引用由Qt Designer创建的UI界面,而不需要在头文件中包含完整的UI类定义。这种分离的方法有助于减少编译依赖性并保持代码的清晰和组织。在你的源文件中,你会创建一个 Ui::Widget 类型的对象来访问和操作UI组件。

QT_BEGIN_NAMESPACE

QT_BEGIN_NAMESPACE 是Qt框架中用于支持命名空间的宏定义。Qt使用这些宏来确保其库中的类和函数不会与其他库中的同名类和函数冲突。 QT_BEGIN_NAMESPACE 宏在定义Qt类和函数之前使用,用来指定接下来的代码位于Qt的命名空间中。它通常与 QT_END_NAMESPACE 配对使用,后者标志着命名空间的结束。这种机制对于在大型项目中维护代码的清晰度和防止命名冲突非常重要。

Q_OBJECT

Q_OBJECT 宏是Qt框架中一个非常重要的宏,用于启用Qt对象的元对象系统。当你在Qt中定义一个类时,如果这个类继承自 QObject 或其子类,并且你想使用Qt的信号和槽机制、国际化、属性系统或其他Qt元对象系统提供的功能,就必须在类定义中包含 Q_OBJECT 宏。

这个宏允许Qt的元对象编译器(moc)识别并处理这个类,生成额外的代码,这些代码是实现信号和槽机制以及其他元对象功能所必需的。简单地说, Q_OBJECT 宏为Qt类提供了额外的元数据,使得类能够完全利用Qt框架的功能。

Widget::Widget(QWidget *parent) : QWidget(parent),ui(new Ui::Widget)

代码 : QWidget(parent) 是初始化列表,用于调用基类 QWidget 的构造函数,并将 parent 传递给它。 ui(new Ui::Widget) 是初始化类内部的 ui 成员变量,这是通过 new 关键字动态分配的。Ui::Widget 是由Qt Designer工具生成的,用于处理用户界面。这种方式允许将用户界面的设计与后端逻辑代码分离,有助于提高代码的可维护性和可读性。

常用的Ui工具

  • 按键QPushButton
  • 水平布局QHBoxLayout
  • 文本编辑器TextEdit
  • 垂直布局QVBoxLayout
  • 主窗体元素设计
  • 9
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值