目录
用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为空时,就创建,如果不为空,则不会创建,保证只有一个主菜单栏。将

最低0.47元/天 解锁文章
2976

被折叠的 条评论
为什么被折叠?



