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,歡迎加我一塊兒討論編程問題!!

相關文章
相關標籤/搜索