QT day3

cpp 复制代码
#include "widget.h"
#include "ui_widget.h"

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

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


void Widget::on_ziti_clicked()//字體按鈕的槽函數
{
    //直接調用Qfontdialog類中的靜態成員函數,getfont函數來調取系統提供的字體對話框
    bool ok;                                  //用於接受用戶是否選中了字體
    QFont f= QFontDialog::getFont(&ok,//返回是否选中字体
                        QFont("隶属",10,10,false),//初始字体的类型 大小 倾斜
                         this,                  //父组件
                         "选择字体");               //对话框标题
    //选中的字体进行使用
    if(ok)
    {
        //选中字体,可以把字体设置到文本上
       // ui->textEdit->setFont(f);
        ui->textEdit->setCurrentFont(f);//设置当前字体
    }
    else
    {
        //没选中字体
        QMessageBox::information(this,"提示","您取消了选择字体");
    }
}
                                    //字体颜色对话框

void Widget::on_yanse_clicked()//颜色按钮对应的槽函数
{
    //调用静态成员函数 获得系统颜色对话框
    QColor c=QColorDialog::getColor(QColor("pink"),
                                    this,
                                    "选择颜色");
    if(c.isValid())//对选中的颜色判断合法性
    {
        //颜色合法直接使用
        ui->textEdit->setTextColor(c);//选中字体改变颜色
        ui->textEdit->setTextBackgroundColor(c);//设置选中字体的背景颜色
    }
    else
    {
        //颜色不合法
        QMessageBox::information(this,"提示","颜色不合法");
    }
}
//打开文件对话框
void Widget::on_open_clicked()
{
    //调用QFliedialog的静态成员函数getopenfilename来获取选中文件的路径
    QString filename=QFileDialog::getOpenFileName(
    this,
    "选择文件",//父组件
     "./",//起始路劲
    "Image File(*.png *.jpg *bmp);;Text File(*.txt);;All(*.*)");//过滤器
    //判断是否有选中文件
    if(filename.isNull())
    {
        QMessageBox::information(this,"提示","你取消了文件");
    }
    qDebug()<<filename;


    //实例化一个文件对象
    QFile file(filename);       //使用获取到的文件路径,实例化一个文件对象,后期对文件的操作都是基于
                                //该对象

    //判断文件是否存在
    if(!file.exists())
    {
        return;
    }

    //打开文件
    if(!file.open(QFile::ReadWrite))
    {
        return;
    }
    // 读取文件中的内容lll
    QByteArray mas=file.readAll();

    //将内容展示到 ui界面
    ui->textEdit->setText(mas);

    //关闭文件
    file.close();

}
void Widget::on_baocun_clicked()//保存文件
{
    QString filename=QFileDialog::getSaveFileName(
    this,
    "保存文件",//父组件
     "./",//起始路劲
    "Image File(*.png *.jpg *bmp);;Text File(*.txt);;All(*.*)");//过滤器
    //判断是否有选中文件
    if(filename.isNull())
    {
        QMessageBox::information(this,"提示","你取消了文件");
    }
    qDebug()<<filename;


    //创造一个实例对象
    QFile file(filename);       //使用获取到的文件路径,实例化一个文件对象,后期对文件的操作都是基于
                                //该对象

    //    //判断文件是否存在
    //    if(!file.exists())
    //    {
    //        return;
    //    }

    //打开文件
    if(!file.open(QFile::WriteOnly))//QFile::Truncate))
    {
        return;
    }
    // 读取文件中的内容

    QString save=ui->textEdit->toPlainText();

    QByteArray sa=save.toUtf8();
    file.write(sa);

    //关闭文件
    file.close();

}
相关推荐
万物得其道者成8 分钟前
React Zustand状态管理库的使用
开发语言·javascript·ecmascript
学步_技术13 分钟前
Python编码系列—Python抽象工厂模式:构建复杂对象家族的蓝图
开发语言·python·抽象工厂模式
wn53137 分钟前
【Go - 类型断言】
服务器·开发语言·后端·golang
Hello-Mr.Wang1 小时前
vue3中开发引导页的方法
开发语言·前端·javascript
救救孩子把1 小时前
Java基础之IO流
java·开发语言
WG_171 小时前
C++多态
开发语言·c++·面试
宇卿.1 小时前
Java键盘输入语句
java·开发语言
Amo Xiang1 小时前
2024 Python3.10 系统入门+进阶(十五):文件及目录操作
开发语言·python
friklogff1 小时前
【C#生态园】提升C#开发效率:深入了解自然语言处理库与工具
开发语言·c#·区块链
重生之我在20年代敲代码2 小时前
strncpy函数的使用和模拟实现
c语言·开发语言·c++·经验分享·笔记