前言
日常开发一直是linux后台 + 控制系统软件开发,感觉每天的黑框甚是无聊啊,搞个界面开发吧,平时主要用C++,无他,只能QT了,上次使用还是读书时,已经忘得差不多了。好在看了一下QT的基本框架,感觉封装的非常好,因此做了一个简单的Demo测试。
本人晚上九点到家,昨天开发到11点多,今天又开发了一会。终于有个雏形了。
功能实现
完全参考win10 记事本的样子写的,照猫画虎;不知道怎么弄的就百度;
实现基本的功能如下:
- 文件,编辑,查找
- 保存,另存为,复制,粘贴,撤销
- 支持所有常用快捷键
待改善(实在太多了)
只是抱着用用的态度,学习了一下,否则搞了几年开发,一直黑框框,实在汗颜啊。
- 状态栏显示待完善
- 文档行号
- 颜色显示
- 智能保存
- 等等等等等
直接上效果图吧
接口实现
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QCloseEvent>
#include <QLineEdit>
#include <QDialog>
#include <QPushButton>
#include <QMouseEvent>
class QLineEdit;
class QDialog;
namespace Ui {
class MainWindow;
}
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = 0);
~MainWindow();
protected:
void closeEvent(QCloseEvent* event);
void mousePressEvent(QMouseEvent* e);
private slots:
void on_pushButton_CloseWindow_clicked();
void on_actionNew_File_N_triggered();
void on_actionSave_S_triggered();
void on_actionSaveAs_A_triggered();
void on_actionOpen_O_triggered();
void on_actionClose_C_triggered();
void on_actionExit_E_triggered();
void on_actionCopy_C_triggered();
void on_actionPast_V_triggered();
void on_actionCut_X_triggered();
void on_actionUndo_U_triggered();
void showFindText();
void on_actionFind_F_triggered();
public:
void newFile();
bool maybeSave();
bool save();
bool saveAs();
bool saveFile(const QString &fileName);
//tools
bool loadFile(const QString &fileName);
private:
void initialize();
void addStatusBarInfo();
private:
Ui::MainWindow *ui;
bool isUntitled;
QString curFileName;
QLineEdit *findLineEdit;
QDialog *findDlg;
};
#endif // MAINWINDOW_H