二十二、QT记事本

发布于:2024-12-07 ⋅ 阅读:(95) ⋅ 点赞:(0)

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 类型的


网站公告

今日签到

点亮在社区的每一天
去签到