Qt使用信号槽完成打开和保存文件命令

来源:互联网 发布:嗨课网软件哪里下载 编辑:程序博客网 时间:2024/06/07 12:10

在界面文件中,给file文件下的open 和save 加动作,然后转为槽,如下图所示:

private slots:
    void on_actionOpen_triggered();
    void on_actionSave_triggered();
    void on_pushButton_clicked();
在cpp中写方法,来实现打开和保存的功能:open方法如下所示:

void Notepad::on_actionOpen_triggered()
{
   // 格式和格式之间用两个;;来隔开
    QString filename=QFileDialog::getOpenFileName(this,tr("Open File"),QString(),tr("Text Files(*.txt);;c++ Files(*.cpp *.h);;Jsp Files(*.jsp)"));
    if(!filename.isEmpty())
    {
        QFile file(filename);
        if(!file.open(QIODevice::ReadOnly))   //以只读的方式打开文件
        {
            QMessageBox::critical(this,tr("ERROR"),tr("couldn't open the file"));
            return;
        }
        else
        {
            QTextStream stream(&file);
            ui->textEdit->setText(stream.readAll());
            file.flush();
        }
    }
    else
    {
      QMessageBox::critical(this,tr("ERROR"),tr("you don't open any file")) ;//使用消息框的形式提示“没有打开任何文件”
    }
}
save方法如下所示:

void Notepad::on_actionSave_triggered()
{
      QString filename=QFileDialog::getSaveFileName(this,tr("Save File"),QString(),tr("Text Files(*.txt);;c++ Files(*.cpp *.h);;Jsp Files(*.jsp)"));
      if(!filename.isEmpty())
      {
        QFile file(filename);
        if(!file.open(QIODevice::WriteOnly))
        {
        }
        else
        {
            QTextStream stream(&file);
            stream<<ui->textEdit->toPlainText();
            stream.flush();
            file.close();
        }
      }
}



0 0
原创粉丝点击