qt编写简单记事本功能

使用qt来编写一个简单的记事本,实现的功能有保存,另存为,新建,剪贴,粘贴,复制等功能。

附源码及文件:https://pan.baidu.com/s/1EglQHLiK4ZMvWCJ_Ehu6wQ  密码yghw

///mainwidown.cpp

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QApplication>
#include <qclipboard.h>
#include <QFile>
#include <QMessageBox>
#include <QFileDialog>
#include <QDebug>
#include <QDataStream>
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);

    connect(ui->actionNew_N,SIGNAL(triggered(bool)),this,SLOT(slot1()));

//connect的四个参数分别是信号,信号类型,this指针,槽函数

//此处是使用的手工的方式,使用connect函数进行信号和槽之间的链接,实际使用的时候,可以使用ui界面

//,拖动套件,进行转到槽的操作,方便快捷,但是新手不建议这么做。新手建议使用connect来连接。

}


MainWindow::~MainWindow()
{
    delete ui;
}

//剪切功能,调用提供的函数接口
void MainWindow::on_actionCut_C_triggered()
{
ui->plainTextEdit->cut();
}

//打开文件功能(此功能和某种意义上的保存不太一致,有兴趣可以自己研究)
void MainWindow::on_actionOpen_O_triggered()
{
    QString filename= QFileDialog::getOpenFileName(this,"open file",QDir::currentPath());
    if(filename.isEmpty())
     {
         QMessageBox::warning(this,"tip","can't open file");
         return ;
    }
    QFile *file =new QFile;
    file->setFileName(filename);
    bool ok=file->open(QIODevice::ReadOnly);
    if(ok)
    {
        QTextStream in(file);
            ui->plainTextEdit->setPlainText(in.readAll());
     }
      else
    {
            QMessageBox::warning(this,"tip","can't open file"+file->errorString());
            return ;
    }
            file->close();
    delete file;
}

//新建功能  只是清空了文字
void MainWindow::on_actionNew_N_triggered()
{
    ui->plainTextEdit->clear();
}

//空的槽函数
void MainWindow::slot1(){


}


void MainWindow::on_actionCopy_C_triggered()
{
    ui->plainTextEdit->copy();
}

//这里是产生了一个ui窗口,当然你也可以选择使用information这个函数功能来弹出对话框,我只是为了多尝试才是用了这个
void MainWindow::on_actionAbout_triggered()
{
    //a1.show();
    About *a2=new About();
    a2->show();
}


void MainWindow::on_actionPaste_V_triggered()
{
    ui->plainTextEdit->paste();
}


void MainWindow::on_actionExit_E_triggered()
{
     this->close();
}


void MainWindow::on_actionDeleat_triggered()
{
    ui->plainTextEdit->textCursor().deleteChar();
}


void MainWindow::on_actionSave_S_triggered()
{
   QString filename=QFileDialog::getSaveFileName();
   QFile file ;
   file.setFileName(filename);
   if(file.open(QIODevice ::Append))
   {
       QTextStream out(&file);
       out<<ui->plainTextEdit->toPlainText();


   }
   else
   {
       QMessageBox::information(this,"Erro message","please chose a file");
   }
  file.close();

}

void MainWindow::on_actionSave_as_A_triggered()
{
    on_actionSave_S_triggered();
}

猜你喜欢

转载自blog.csdn.net/qq_42043984/article/details/81052429