简易的文本实现

#include "mainwindow.h"
#include "ui_mainwindow.h"
 
 
MainWindow::MainWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    this->setWindowTitle("Untitled");
    QObject::connect(ui->action_N,SIGNAL(triggered()),this,SLOT(newFileSlot()));
    QObject::connect(ui->action_O,SIGNAL(triggered()),this,SLOT(openFileSlot()));
    QObject::connect(ui->action_4,SIGNAL(triggered()),this,SLOT(close()));
    QObject::connect(ui->colorAction,SIGNAL(triggered()),this,SLOT(setColorSlot()));
    QObject::connect(ui->fontAction,SIGNAL(triggered()),this,SLOT(setFontSlot()));
    QObject::connect(ui->copyAction,SIGNAL(triggered()),ui->textEdit,SLOT(copy()));
    QObject::connect(ui->cutAction,SIGNAL(triggered()),ui->textEdit,SLOT(cut()));
    QObject::connect(ui->pasteAction,SIGNAL(triggered()),ui->textEdit,SLOT(paste()));
    QObject::connect(ui->selectAction,SIGNAL(triggered()),ui->textEdit,SLOT(select()));
    QObject::connect(ui->undoAction,SIGNAL(triggered()),ui->textEdit,SLOT(undo()));
    QObject::connect(ui->redoAction,SIGNAL(triggered()),ui->textEdit,SLOT(redo()));
    QObject::connect(ui->datetimeAction,SIGNAL(triggered()),this,SLOT(currentDateTimeSlot()));
    QObject::connect(ui->action_S,SIGNAL(triggered()),this,SLOT(saveFileSlot()));
    QObject::connect(ui->action_A,SIGNAL(triggered()),this,SLOT(saveAsFileSlot()));
}
 
 
MainWindow::~MainWindow()
{
    delete ui;
}
void MainWindow::newFileSlot()
{
    if(ui->textEdit->document()->isModified())
    {
        qDebug()<<"current file modified";
 
 
    }
    else
    {
        qDebug()<<"not modified";
        ui->textEdit->clear();
        this->setWindowTitle("Untitled.txt");
    }
 
 
}
 
 
void MainWindow::openFileSlot()
{
    QString fileName = QFileDialog::getOpenFileName(this,"Open File",QDir::currentPath());
    //qDebug()<<"fileName is"<<fileName;
    if(fileName.isEmpty())
    {
        QMessageBox::information(this,"Error Message","Please Select a Text File");
        return ;
    }
    QFile *file = new QFile;
    file->setFileName(fileName);
    bool ok=file->open(QIODevice::ReadOnly);
    if(ok)
    {
        QTextStream in(file);
        ui->textEdit->setText(in.readAll());
        file->close();
        delete file;
    }
    else
    {
 
 
        QMessageBox::information(this,"Error message","File Open Error"+file->errorString());
        return ;
    }
}
 
 
 
 
void MainWindow::saveFileSlot()
{
    if(saveFileName.isEmpty())
    {
        this->saveAsFileSlot();
    }
    else
    {
 
 
        QFile *file = new QFile;
        file->setFileName(saveFileName);
        bool ok = file->open(QIODevice::WriteOnly);
 
 
        if(ok)
        {
            QTextStream out(file);
            out<<ui->textEdit->toPlainText();//将文本编辑器中的内容以纯文本的形式输出到流对象中
            file->close();
            delete file;
 
 
 
 
        }
    }
 
 
}
 
 
void MainWindow::saveAsFileSlot()
{
    QString saveFileName=QFileDialog::getSaveFileName(this,"Save File",QDir::currentPath());
    if(saveFileName.isEmpty())
    {
        QMessageBox::information(this,"Error Message","Please Select A File");
        return;
    }
    QFile *file = new QFile;
    file->setFileName(saveFileName);
    bool ok = file->open(QIODevice::WriteOnly);
 
 
    if(ok)
    {
        QTextStream out(file);
        out<<ui->textEdit->toPlainText();
        file->close();
        this->setWindowTitle(saveFileName+"-----notepad");
        delete file;
 
 
 
 
    }
    else
    {
        QMessageBox::information(this,"Error Message","Save File Error");
        return;
 
 
    }
}
 
 
 
 
void MainWindow::printFileSlot()
{
 
 
}
 
 
void MainWindow::setFontSlot()
{
    bool ok;
    QFont font = QFontDialog::getFont(&ok,this);
    if(ok)
    {
        ui->textEdit->setFont(font);
    }
    else
    {
        QMessageBox::information(this,"Error Message","Error set Font");
        return ;
    }
 
 
}
 
 
void MainWindow::setColorSlot()
{
    QColor color = QColorDialog::getColor(Qt::red,this);
    if(color.isValid())
    {
        ui->textEdit->setTextColor(color);
        //ui->textEdit->backgroundRole();
    }
    else
    {
        QMessageBox::information(this,"Error Message","Color is unvalid");
        return ;
    }
 
 
}
 
 
void MainWindow::undo()
{
 
 
 
 
}
 
 
void MainWindow::redo()
{
 
 
}
 
 
void MainWindow::select()
{
 
 
}
 
 
void MainWindow::paste()
{
 
 
}
 
 
void MainWindow::cut()
{
 
 
 
 
}
 
 
void MainWindow::copy()
{
 
 
}
 
 
void MainWindow::currentDateTimeSlot()
{
    QDateTime current = QDateTime::currentDateTime();
    QString time = current.toString("yyyy-M-dd hh:mm:ss");
    ui->textEdit->append(time);
 
 
}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值