使用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();
}