Qt(制作一个简单的文本编辑器)

目录

功能的简单介绍:

制作过程步骤:

菜单栏、工具栏和文本编辑器的创建和设置:

主窗口:

文本编辑框:

菜单栏、工具栏的创建和设置:

主菜单栏:

创建文件菜单:

为文件菜单添加打开文件、保存文件、关闭的动作:

创建工具栏:

连接信号和槽函数:

打开文件:

保存文件:

关闭:

字体设置:

颜色设置:

完整代码:

MainWindow代码:

主函数:


用QDialog类的文件窗口、颜色窗口、字体窗口、QMessageBox类中的弹窗消息、菜单栏、工具栏、信号和槽函数实现一个简单的文本编辑器。

常用对话框:

https://blog.youkuaiyun.com/HMBBLOVEPDX/article/details/151968097?spm=1001.2014.3001.5501

信号和槽函数:

https://blog.youkuaiyun.com/HMBBLOVEPDX/article/details/151928089?spm=1001.2014.3001.5501

菜单栏、工具栏、状态栏:

https://blog.youkuaiyun.com/HMBBLOVEPDX/article/details/152092439?spm=1001.2014.3001.5501

功能的简单介绍:

制作一个建议的文本编辑器,实现:

打开文件:将选择的文件点击打开之后,内容显示在文本编辑框。

保存文件:将文本编辑框中的内容保存到选择的路径下。

关闭:点击关闭之后,关闭程序。

设置字体:将选中的内容的字体改变为选择的字号和字体。

设置字体:将选中的内容的字体颜色改变为选择的字体颜色。

制作过程步骤:

菜单栏、工具栏和文本编辑器的创建和设置:

先将要使用到的变量定义为成员变量,方便后面对其进行封装,要不然全写构造函数,看起来太多。在成员函数中定义一个createMenuBar()函数,对菜单栏、工具栏、文本编辑框进行设置。

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QMenuBar>
#include <QMenu>
#include <QAction>
#include <QToolBar>
#include <QToolButton>
#include <QTextEdit>

QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE

class MainWindow : public QMainWindow
{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    void createMenuBar();

private:
    Ui::MainWindow *ui;
    QMenuBar* newmenuBar;//定义一个主菜单栏
    QMenu* FileMenu;//定义一个文件菜单
    QAction* openFileMenu;//定义打开文件动作
    QAction* saveFileMenu;//定义保存文件动作
    QAction* closeMenu;//定义关闭动作

    QToolBar* toolBar;//定义一个工具栏
    QToolButton* FontButton;//定义设置字体的工具按钮
    QToolButton* ColorButton;//定义一个设置字体颜色的工具按钮

    QTextEdit* textEdit;//定义一个文本编辑框
};
#endif // MAINWINDOW_H

主窗口:

在构造函数中,先将主窗口的标题和图标进行一个设置:

this->setWindowTitle("文件编辑器");
this->setWindowIcon(QIcon(":/resimage/downloaded-image.png"));
//QIcon("资源路径")

图标需要添加到该项目当中的资源文件中,然后复制图片的路径。这样可以达到:

文本编辑框:

然后对文本编辑框进行设置:

textEdit=new QTextEdit(this);
this->setCentralWidget(textEdit);

创建一个QTextEdit控件实例(多行文本编辑区域),参数this表示将当前窗口设为父对象,实现内存自动管理。将创建的文本编辑器设置为窗口的中央部件,在QMainWindow布局体系中,centralWidget会占据除菜单栏/状态栏外的所有空间。

菜单栏、工具栏的创建和设置:

然后对createMenuBar()函数进行封装:

主菜单栏:

先创建一个主菜单栏,将其添加到主窗口当中:

newMenuBar=this->menuBar();//将获取到的菜单栏指针赋值给newMenuBar变量。
//这种方式相比直接new QMenuBar()更安全,避免了重复创建导致的内存泄漏问题
this->setMenuBar(newMenuBar);

因为菜单栏在一个窗口只有一个,所以这里采用menuBar(),当newMenuBar为空时,就创建,如果不为空,则不会创建,保证只有一个主菜单栏。将

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值