用Qt实现一个多功能记事本,
功能 :布局对齐,字体变换,颜色改变.
格式 :自动保存为rtf格式,支持txt格式,兼容MS Word打开.
涉及知识 :文件保存过滤器的使用,文件的输入输出流,光标的控制
可能会有一些小Bug
效果图如下:
/*---------------MyNotepad.h--------------------*/
#ifndef MAINWINDOW_H
#define MAINWINDOW_H
#include <QMainWindow>
#include <QAction>
#include <QMenu>
#include <QTextEdit>
#include <QMenuBar>
#include <QCloseEvent>
#include <QLabel>
class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow(QWidget *parent = 0);
~MainWindow();
void mergeFormat(QTextCharFormat fmt);
bool boldcheck;
bool Italiccheck;
bool UnderLinecheck;
private:
QAction *fileNew;
QAction *fileOpen;
QAction *fileExit;
QAction *fileSave;
QAction *copyAct;
QAction *pasteAct;
QAction *cutAct;
QAction *fontAct;
QAction *colAct;
QAction *selAct;
QAction *timeAct;
QAction *boldAct;
QAction *underAct;
QAction *italicAct;
QAction *leftAct;
QAction *rightAct;
QAction *centerAct;
QAction *about;
QAction *aboutAuthor;
QMenu *Menu;
QTextEdit *textEdit;
QLabel *lableft;
QLabel *labright;
void closeEvent(QCloseEvent *event);
private slots:
void newfile();
void openfile();
void exitfile();
void savefile();
void copyword();
void cutword();
void pasteword();
void selslot();
void colslot();
void fontslot();
void timeslot();
void italicslot();
void underslot();
void boldslot();
void showabout();
void layoutLeft();
void layoutRight();
void layoutCenter();
void showauthor();
};
#endif // MAINWINDOW_H
/*---------------MyNotepad.h--------------------*/
/*---------------MyNotepad.cpp--------------------*/
#include "mainwindow.h"
#include <QTextCursor>
#include <QFileDialog>
#include <QFile>
#include <QString>
#include <QTextStream>
#include <QMessageBox>
#include <QHBoxLayout>
#include <QMessageBox>
#include <QColor>
#include <QColorDialog>
#include <QFont>
#include <QFontDialog>
#include <QDateTime>
#include <QMovie>
#include <QDesktopServices>
MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
fileNew = new QAction(tr("新建"),this);
fileNew->setShortcut(tr("Ctrl+N"));
fileOpen = new QAction(tr("打开"),this);
fileOpen->setShortcut(tr("Ctrl+O"));
fileExit = new QAction(tr("退出"),this);
fileExit->setShortcut(tr("Ctrl+Q"));
fileSave = new QAction(tr(