QT day3 (封装软件)

实现文本编辑器

#include "widget.h"
#include "ui_widget.h"

widget::widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::widget)
{

        //this->setWindowFlags(Qt::FramelessWindowHint);
    ui->setupUi(this);
    this->setFixedSize(QSize(650,570));
    this->setWindowTitle("文本编辑器");
    qDebug()<size();
    //ui->textEdit->resize(this->size());
    qDebug()<textEdit->size();

}

//void widget::mouseMoveEvent(QMouseEvent *event)
//{

//    ui->textEdit->resize(this->width(),this->height()-100);
//    //ui->layout->move(ui->open->x(),this->height()-50);

//}



widget::~widget()
{
    delete ui;
}
//字体按钮
void widget::on_word_clicked()
{

    bool ok;
    QFont font = QFontDialog::getFont(
                &ok,
                QFont("隶书", 16,2,true),
                nullptr ,
                "选择字体");
    if (ok) {
        // the user clicked OK and font is set to the font the user selected
        qDebug()<< "字体选择成功";
        //       ui->textEdit->setFont(font);     //改变全局字体样式
        ui->textEdit->setCurrentFont(font);  //改变当前字体样式


    } else {
        // the user canceled the dialog; font is set to the initial
        // value, in this case Helvetica [Cronyx], 10
        qDebug()<< "取消选择";
    }
}
//颜色按钮
void widget::on_color_clicked()
{

    // Specify semi-transparent blue
    QColor c=QColorDialog::getColor(
                Qt::blue,
                nullptr,
                QString(),
                QColorDialog::ShowAlphaChannel);

    if (c.isValid()) {
        qDebug()<< "颜色选择成功";
        ui->textEdit->setTextColor(c);
    }
    else {
        qDebug()<< "取消选择";
    }
}
//打开文件按钮
void widget::on_open_clicked()
{
    QString fileName = QFileDialog::getOpenFileName(
                this,                               //父组件
                tr("打开文件"),                          //对话框标题
                "./",                                    //默认目录
                tr("all(*.*);;cpp(*.cpp);;Image Files(*.png *.jpg *.bmp *.gif)"));  //过滤器

    if(fileName.isSimpleText())    {
        qDebug()<< "选择成功";
        QFile file(fileName);

        //判断文件是否存在
        if(!file.exists()){
            qDebug()<<"文件不存在";
            return;
        }
        if(!file.open(QIODevice::ReadWrite))
        {
            qDebug()<<"文件打开失败";
            return;
        }

        //读取文件中的数据
        QByteArray text=file.readAll();
        //将内容读入
        ui->textEdit->setText(QString::fromLocal8Bit(text));
        //关闭文件
        file.close();
    }
    else     {
        qDebug()<< "取消选择";
    }

}

//保存文件按钮
void widget::on_save_clicked()
{
    QString fileName = QFileDialog::getSaveFileName(
                this,                               //父组件
                tr("保存文件"),                          //对话框标题
                "./",                                    //默认目录
                tr("txt(*.txt)"));  //过滤器
    //实例化文件
    QFile file(fileName);


    if(!file.open(QIODevice::ReadWrite))
    {
        qDebug()<<"文件打开失败";
        return;
    }
    //ui获取文本内容
    QString msg=ui->textEdit->toPlainText();

    //写入文件
    file.write(msg.toLocal8Bit());

    file.close();

}

void widget::on_save_2_clicked()
{
    close();
}

void widget::on_backcolor_clicked()
{
    // Specify semi-transparent blue
    QColor c=QColorDialog::getColor(
                Qt::blue,
                nullptr,
                QString(),
                QColorDialog::ShowAlphaChannel);

    if (c.isValid()) {

        qDebug()<< "颜色选择成功";
        ui->textEdit->setTextBackgroundColor(c);
    } else {

        qDebug()<< "取消选择";
    }
}

你可能感兴趣的:(QT,qt,ui,开发语言)