一个简单的文本

来源:互联网 发布:如何把淘宝网店关闭 编辑:程序博客网 时间:2024/06/07 05:02

在官网的Document的指导下,完成一个简单的文本操作。

具体要完成的功能

具备打开/保存/退出简单的功能

步骤1:在头文件中声明需要的控件 slots

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include<QtGui>
class MainWindow : public QMainWindow
{
    Q_OBJECT
    
public:
    MainWindow();
    ~MainWindow();
private slots:
    void exit();
    void save();
    void open();
private:
    QTextEdit *textEdit;
    QAction *openAction;
    QAction *saveAction;
    QAction *exitAction;
    QMenu *menu;
};

#endif // MAINWINDOW_H

步骤2 对头文件中声明的控件,slots进行相应的操作

#include "mainwindow.h"

MainWindow::MainWindow()
{
    textEdit = new QTextEdit;
    setCentralWidget(textEdit);
    openAction=new QAction(tr("&open"),this);
    saveAction=new QAction(tr("&save"),this);
    exitAction=new QAction(tr("&exit"),this);
    connect(openAction,SIGNAL(triggered()),this,SLOT(open()));
    connect(saveAction,SIGNAL(triggered()),this,SLOT(save()));
    connect(exitAction,SIGNAL(triggered()),this,SLOT(exit()));
    menu=menuBar()->addMenu(tr("&File"));
    menu->addAction(openAction);
    menu->addSeparator();
    menu->addAction(saveAction);
     menu->addSeparator();
     menu->addAction(exitAction);

}
void MainWindow::open()
{
    QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), "",
                 tr("Text Files (*.txt);;C++ Files (*.cpp *.h)"));

             if (fileName != "") {
                 QFile file(fileName);
                 if (!file.open(QIODevice::ReadOnly)) {
                     QMessageBox::critical(this, tr("Error"),
                         tr("Could not open file"));
                     return;
                 }
                 QString contents = file.readAll().constData();
                 textEdit->setPlainText(contents);
                 file.close();
             }


}
void MainWindow::save()
{
    QString fileName = QFileDialog::getSaveFileName(this, tr("Save File"), "",
                 tr("Text Files (*.txt);;C++ Files (*.cpp *.h)"));

             if (fileName != "") {
                 QFile file(fileName);
                 if (!file.open(QIODevice::WriteOnly)) {
                     // error message
                 } else {
                     QTextStream stream(&file);
                     stream << textEdit->toPlainText();
                     stream.flush();
                     file.close();
                 }
             }

}
void MainWindow::exit()
{
    QMessageBox messageBox;
         messageBox.setWindowTitle(tr("Notepad"));
           messageBox.setText(tr("Do you really want to quit?"));
        messageBox.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
       messageBox.setDefaultButton(QMessageBox::No);
      if (messageBox.exec() == QMessageBox::Yes)
             qApp->quit();
}
MainWindow::~MainWindow()
{
    
}




原创粉丝点击