文本編輯器例圖
項目開發環境
系統版本:windows10
QT 版本: 5.9.9
開發語言:C++
已實現功能
- 文件操作:新建,打開,保存,另存為,打印,退出
- 編輯操作:復制,粘貼,剪切,查找,替換,撤銷,恢復
- 文字編輯:字體,字號,加粗,傾斜,顏色
- 個性化功能:背景色修改 (軟件默認背景色為護眼綠),背景圖修改
- 快捷鍵操作:大部分功能已匹配相關的快捷鍵操作
未完善功能
-
查找和替換操作,僅支持從當前光標位置向后查找
-
文字居中,對齊等功能尚未實現
-
無法將圖片插入文本進行操作
......
未解決BUG
-
打開操作BUG:從 文件 — 右鍵打開方式 — 選擇本軟件 — 打開后不顯示文件內容
-
個性化功能BUG:背景圖修改后,僅當前狀態有效,退出軟件重新打開后,背景圖失效
-
可能有其它未知BUG,尚未發現
......
部分源碼展示
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,歡迎加我一起討論編程問題!!