1. 项目概述
1.1 功能介绍
支持文本创建,打开,保存,关闭的功能
UI样式美化
添加打开快捷键,添加保存快捷
底部显示行列号及文本字符编码
Ctrl加鼠标滚轮支持字体放大缩小
1.2 界面预览
2.3 工程概述
MainWindows还是Widget
在Qt中,创建 "MainWindow" 与 "Widget" 项目的主要区别在于他们的用途和功能范围:
1. MainWindow:这是一个包含完整菜单栏、工具栏和状态栏的主窗口应用程序框架。它适合于更复杂的应用程序,需要这些额外的用户界面元素来提供丰富的功能和交互。
2. Widget:这通常是一个简单的窗口,没有内置的菜单栏、工具栏或状态栏。它适合于更简单或专用的应用程序,不需要复杂的用户界面组件。
简而言之,选择"MainWindow"或"Widget"取决于你的应用程序需要多少内置的用户界面元素和复杂性。 MainWindow提供了更全面的框架,而Widget则更适合简单、专注的界面。
Source——mian.cpp:
#include "widget.h"
#include <QApplication>
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
Widget w;
w.show();
return a.exec();
}
QApplication a(argc, argv);
在Qt应用程序中, QApplication a(argc, argv); 这行代码的作用是创建一个 QApplication 类的
实例。这是几乎每个Qt应用程序必须做的第一步,因为它负责管理应用程序的许多核心功能。
下表总结了 QApplication 类在Qt框架中的主要功能和职责:
QApplication 是Qt应用程序的核心,它为应用程序提供了必要的环境和框架,确保GUI组件能够正常工作并响应用户的操作。
简而言之, QApplication a(argc, argv); 用于初始化Qt应用程序的环境,设置事件循环,并准备应 用程序处理GUI事件。
return a.exec();
在Qt应用程序中, QApplication::exec() 函数是用来启动应用程序的事件循环的。当你调用这个函数时,它会开始处理和分发事件,如用户的点击、键盘输入等。这个函数会一直运行,直到事件循环结束,通常是因为调用了 QApplication::quit() 函数或者关闭了应用程序的主窗口。简而言之,exec() 是Qt程序中的主循环,负责监听和响应事件,保持应用程序运行直到用户决定退出。
Source——widget.cpp:
#include "widget.h"
#include "ui_widget.h"
Widget::Widget(QWidget *parent) : QWidget(parent), ui(new Ui::Widget)
{
ui->setupUi(this);
}
Widget::~Widget()
{
delete ui;
}
Widget::Widget(QWidget *parent) : QWidget(parent),ui(new Ui::Widget)
QWidget(parent) 是初始化列表,用于调用基类 QWidget 的构造函数,并将 parent 传递给它。 ui(new Ui::Widget) 是初始化类内部的 ui 成员变量,这是通过 new 关键字动态分配的。
Ui::Widget 是由Qt Designer工具生成的,用于处理用户界面。这种方式允许将用户界面的设计与后端逻辑代码分离,有助于提高代码的可维护性和可读性。
Headers——widget.h:
#ifndef WIDGET_H
#define WIDGET_H
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui { class Widget; }
QT_END_NAMESPACE
class Widget : public QWidget
{
Q_OBJECT
public:
Widget(QWidget *parent = nullptr);
~Widget();
private:
Ui::Widget *ui;
};
#endif // WIDGET_H
namespace Ui { class Widget; }
在Qt框架中, namespace Ui { class Widget; } 是一种常见的用法,通常出现在使用Qt Designer设 计GUI时自动生成的代码中。这里的 Ui 是一个命名空间,而 class Widget 是一个前向声明,它声明了一个名为 Widget 的类。这种做法允许在 .cpp 源文件中引用由Qt Designer创建的UI界面,而不需要在头文件中包含完整的UI类定义。这种分离的方法有助于减少编译依赖性并保持代码的清晰和组织。
在你的源文件中,你会创建一个 Ui::Widget 类型的