#ifndef MAINWINDOW_H #define MAINWINDOW_H #include <QtGui/QMainWindow> class QAction; class QTextEdit; class QLabel; class MainWindow : public QMainWindow { Q_OBJECT public: MainWindow(QWidget *parent = 0); ~MainWindow(); //rewrite event handle protected: void closeEvent(QCloseEvent *); private: //state flag int changed; //file menu QAction *newAt; QAction *openAt; QAction *saveAt; QAction *sAsAt; QAction *quitAt; QAction *undoAt; //edit menu QAction *findAt; QAction *rPeAt; //help menu QAction *abtAt; //work space QTextEdit *textEdit; //QString QString fileName; //QLabel QLabel *numOfWord; //function private slots: void open(); void newFile(); void save(); void saveAs(); void change(); void pressOk_have(); void pressOk_new(); void findNowNext(QString,bool); void findNowPre(QString,bool); void findText(); void setUndo(bool); void repNow(QString,QString,bool); void repAllNow(QString,QString,bool); void repText(); }; #endif // MAINWINDOW_H #ifndef FINDDIALOG_H #define FINDDIALOG_H #include <QDialog> class QLabel; class QLineEdit; class QCheckBox; class QPushButton; class QRadioButton; class FindDialog:public QDialog { Q_OBJECT public: enum state{NEXT,PRE}; FindDialog(QWidget *parent=0); private: QLabel *findLabel; QLineEdit *inText; QCheckBox *checkBox; QPushButton *next, *cancel; QRadioButton *up, *down; state uod; void setupWidget(); void setConns(); signals: void findNext(QString,bool b=0); void findPrevious(QString,bool b=0); private slots: void sendsgl(); void setUp(bool); }; #endif // FINDDIALOG_H #ifndef REPLDIALOG_H #define REPLDIALOG_H #include <QDialog> class QLabel; class QPushButton; class QCheckBox; class QLineEdit; class ReplDialog:public QDialog { Q_OBJECT private: QLabel *scLabel, *reLabel; QLineEdit *scEdit, *reEdit; QPushButton *repButton, *repAllButton, *cancelButton; QCheckBox *sensCheckBox; //Function void setupWidget(); void setConns(); public: ReplDialog(QWidget *parent=0); signals: void sigRep(QString,QString,bool); void sigAll(QString,QString,bool); private slots: void sendRep(); void sendAll(); }; #endif // REPLDIALOG_H #include "mainwindow.h" #include <QtGui> #include "finddialog.h" #include "repldialog.h" MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent),changed(0) { fileName=tr("无标题"); this->setWindowTitle(fileName+"-Notepad+"); //QAction memory allocate //file menu newAt=new QAction(this); openAt=new QAction(this); saveAt=new QAction(this); sAsAt=new QAction(this); quitAt=new QAction(this); //edit menu undoAt=new QAction(this); findAt=new QAction(this); rPeAt=new QAction(this); //help menu abtAt=new QAction(this); //text edit textEdit=new QTextEdit; //statustip numOfWord=new QLabel(this); numOfWord->setText(tr("您已经输入0个字符(包括换行回车等)")); //QAction title set newAt->setText(tr("新建")); newAt->setShortcut(QKeySequence::New); openAt->setText(tr("打开")); openAt->setShortcut(QKeySequence::Open); saveAt->setText(tr("保存")); saveAt->setShortcut(QKeySequence::Save); sAsAt->setText(tr("另存为")); sAsAt->setShortcut(QKeySequence::SaveAs); quitAt-