C++ Qt 项目实战(一)之文本编辑器

文本编辑器例图

项目开发环境

系统版本:windows10
QT 版本: 5.9.9
开发语言:C++编程

已实现功能

  1. 文件操做:新建,打开,保存,另存为,打印,退出
  2. 编辑操做:复制,粘贴,剪切,查找,替换,撤销,恢复
  3. 文字编辑:字体,字号,加粗,倾斜,颜色
  4. 个性化功能:背景色修改 (软件默认背景色为护眼绿),背景图修改
  5. 快捷键操做:大部分功能已匹配相关的快捷键操做

未完善功能

  1. 查找和替换操做,仅支持从当前光标位置向后查找windows

  2. 文字居中,对齐等功能还没有实现编辑器

  3. 没法将图片插入文本进行操做工具

    ......字体

未解决BUG

  1. 打开操做BUG:从 文件 — 右键打开方式 — 选择本软件 — 打开后不显示文件内容rest

  2. 个性化功能BUG:背景图修改后,仅当前状态有效,退出软件从新打开后,背景图失效code

  3. 可能有其它未知BUG,还没有发现orm

    ......blog

部分源码展现

mainwindow.h图片

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QCloseEvent>
#include <QMainWindow>
#include <QImage>
#include <QLabel>
#include <QTextEdit>
#include <QMenu>
#include <QMenuBar>
#include <QAction>
#include <QComboBox>
#include <QFontComboBox>
#include <QToolButton>
#include <QTextCharFormat>
#include <QAction>
#include <QColorDialog>
#include <QColor>


class MainWindow : public QMainWindow
{
    Q_OBJECT

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

    void creatMenus();      //建立菜单栏
    void creatToolbars();   //建立工具栏
    void creatActions();    //建立动做

    void ShowNewFile();
    void ShowOpenFile();
    void loadFile(QString & filename);
    bool maybeSave();
    bool saveFile(QString & filename);
    bool saveAs();
    void showPrintText();

    void mergeFormat(QTextCharFormat format);
    void ShowFontComBox(QString comboStr);
    void ShowSizeSpinBox(QString spinValue);
    void ShowBoldBtn();
    void ShowItalicBtn();
    void ShowUnderlineBtn();
    void ShowColorBtn();
    void ShowCurrentFormatChanged(const QTextCharFormat &fmt);
    void ShowFind();
    void ShowReplace();

    void SetBackgroundColor(QColor color);
    void SetBackgroundImage();

protected:
    void closeEvent(QCloseEvent *event);

private:
    QMenu * fileMenu;        //菜单栏各项
    QMenu * editMenu;
    QMenu * personaliseMenu;
    QMenu * helpMenu;

    QToolBar * filetoolbar;  //文件工具栏
    QToolBar * fontToolBar;  //字体工具栏

    QImage img;
    QString filePath;
    QTextEdit * text;
    bool isUntitled;

    QAction * openFileAction;          //文件菜单项
    QAction * newFileAction;
    QAction * saveFileAction;
    QAction * saveasFileAction;
    QAction * printFileAction;
    QAction * exitAction;

    QAction * copyAction;              //编辑菜单项
    QAction * pasteAction;
    QAction * cutAction;
    QAction * undoAction;
    QAction * restoreAction;
    QAction * findAction;
    QAction * replaceAction;

    QAction * setBkColorAction;
    QAction * setBkImageAction;

    QAction * helpInformationAction;   //帮助菜单项
    QAction * aboutSoftwareAction;
    QAction * AboutAuthorAction;

    QLabel * fontLabel1;               //字体设置项
    QFontComboBox * fontComboBox;
    QLabel * fontLabel2;
    QComboBox * sizeComboBox;
    QToolButton * boldBtn;
    QToolButton * italicBtn;
    QToolButton * underlineBtn;
    QToolButton * colorBtn;
};
#endif // MAINWINDOW_H

打包软件下载

https://wws.lanzous.com/i5HeRfmkf6d

程序源码下载

https://wws.lanzous.com/iDwC2fmkf8f

最后

本人 QQ 2694218551,欢迎加我一块儿讨论编程问题!!

相关文章
相关标签/搜索