qt day4作业 文本编辑器

字体、颜色、打开文件、保存文件

#include "ui_widget.h"

Widget::Widget(QWidget *parent)
    : QWidget(parent)
    , ui(new Ui::Widget)
{
    ui->setupUi(this);
}

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

//字体按钮的槽函数
void Widget::on_fontBtn_clicked()
{
    bool ok; //返回是否选中字体

    //调出系统的字体对话框
    QFont f = QFontDialog::getFont(&ok,   //是否返回选中字体
                                   QFont("微软雅黑", 10, 5, true),  //设置初始字体(字体,大小,粗细程度,是否倾斜)
                                   this,  //父组件
                                   "字体");//对话框标题

    if(ok)
    {
        //ui->msgEdit->setFont(f);        //将全部字体修改
        ui->msgEdit->setCurrentFont(f); //将选中字体修改
    }
    else
    {
        //如果没有改变字体,则不需要操作
    }
}

//颜色按钮的槽函数
void Widget::on_colorBtn_clicked()
{
    //调出颜色对话框
    QColor c = QColorDialog::getColor(QColor(0, 0, 0),  //设置初始颜色 red=0 green=0 blue=0 黑色
                                      this,            //父组件
                                      "颜色");          //对话框标题

    if(c.isValid())
    {
        //ui->msgEdit->setTextColor(c);         //改变字体颜色
        ui->msgEdit->setTextBackgroundColor(c); //改变字体背景色
    }
}

//打开文件按钮的槽函数
void Widget::on_openBtn_clicked()
{
    //1、找到要打开的文件的路径
    QString fileName = QFileDialog::getOpenFileName(this,        //父组件
                                                    "选择文件",    //对话框标题
                                                    "./",         //起始路径 当前路径
                                                    "all(*.*)");  //文件类型过滤器

    //2、使用QFile类实例化一个对象,可以用获取到的路径名进行构造
    QFile f(fileName);

    //3、打开文件,以读写形式
    if(!f.open(QFile::ReadWrite))
    {
        return;
    }

    //4、读取文件内容,全部读取,返回类型是字节数组
    QByteArray msg = f.readAll();

    //5、将读取到的内容放入UI界面
    ui->msgEdit->setText(msg);

    //6、关闭文件
    f.close();
}

//保存文件按钮的槽函数
void Widget::on_saveBtn_clicked()
{
    
    QString file = QFileDialog::getSaveFileName(this,        //父组件
                                                "保存文件",   //对话框标题
                                                "./",        //起始路径 当前路径
                                                "all(*.*)"); //文件类型过滤器
    //实例化一个对象
    QFile f(file);

    //打开文件,以写形式
    if(!f.open(QFile::WriteOnly))
    {
        return;
    }

    //获取输入的内容
    QString msg = ui->msgEdit->toPlainText();

    //将QString转换成QByteArray
    QByteArray m = msg.toLocal8Bit();

    //将内容放入文件中
    f.write(m);

    //关闭文件
    f.close();
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值