QT学习day2(4.27作业)

在这里插入图片描述
widget.cpp



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


Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    
    ui->setupUi(this);
    this->setWindowTitle("文本编辑器");
    
    ui->radioButton->setChecked(true);
    ui->radioButton_3->setChecked(true);
    ui->radioButton_5->setChecked(true);
}

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



void Widget::on_pushButton_font_clicked()
{
    bool ok;
    QFont f=QFontDialog::getFont(&ok,QFont("楷体",12,5,true),this,"选择字体");
    //参数1:返回选中的字体状态
    //参数2:初始字体
    //参数3:父组件
    //参数4:对话框标题
    
    //将选中的字体舍之道文本编辑器中
    if(ok)
    {
        if(ui->radioButton->isChecked()==true)
        {
            ui->textEdit->setFont(f);//设置全局字体
        }else
        {
            ui->textEdit->setCurrentFont(f);//设置选中字体
        }
        
        
    }
}


void Widget::on_pushButton_color_clicked()
{
    //调取颜色对话框,选中颜色
    QColor c=QColorDialog::getColor(QColor(255,0,0),this,"选择颜色");
    if(c.isValid())//如果确定修改
    {
        //将改字体添加到文本框
        if(ui->radioButton_3->isChecked()==true)
        {
            ui->textEdit->setTextColor(c);//设置文本前景色
        }else
        {
            ui->textEdit->setTextBackgroundColor(c);//设置背景色
        }
        
        
    }
}


void Widget::on_pushButton_openfile_clicked()
{
    //1. 找到要打开的文件路径
    QString filename=QFileDialog::getOpenFileName(
        this,//父窗口
        "选择",//窗口标题
        "./",//当前文件夹
        "txt(*.txt);;c程序(*.C);;all(*.*)");//过滤器
        //2.用Qfile类实例化对象,可以对路径名进行构造
        QFile file(filename);
    //3.打开文件
    if(!file.open(QFile::ReadWrite))//以读写模式打开文件
        return;
    //4.读取文件内容,将文件内容放到ui界面中
    QByteArray msg= file.readAll();//将文件中的内容全部读取出来,放到字节数组种
    
    //如果选择utf-8 ,则直接读取放在文本框
    if(ui->radioButton_5->isChecked()==true)
    {
        //5.将读取出来的内容放到ui界面
        ui->textEdit->setText(msg);
    }else//否则放gbk的格式
    {
        QTextCodec *codec = QTextCodec::codecForName("GBK"); // 获取GBK编码的QTextCodec对象
        QString gbkStr = codec->toUnicode(msg); // 使用QTextCodec将UTF-8编码的字节串转换为QString
        ui->textEdit->setText(gbkStr); // 显示转换后的字符串
    }
    file.close();//关闭文件
    
}


void Widget::on_pushButton_savefile_clicked()//保存文件没写出来
{
    
    // 保存文件 getsave
    //获取文本框纯文本内容
    QString str=ui->textEdit->toPlainText();
    //string 转 QBytearray
    //打开要保存的 文件路径
    QString filename=QFileDialog::getSaveFileName(this,                 //父组件
                                                    "保存",    //窗口标题
                                                    "./",  //起始路径
                                                    "all(*.*)");//过滤器
    
    QFile file(filename);//实例化对象
    //打开文件
    if(!file.open(QFile::ReadWrite))
    {
        return ;
    }
    //获取ui界面上的文本内容
    QString msg=ui->textEdit->toPlainText();
    
    //将内容写入到所选的文件中
    file.write(msg.toLocal8Bit());//将qstring类型转换为qbyte
    //关闭文件
    file.close();
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值