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();

}
相关推荐
阿珊和她的猫2 小时前
v-scale-scree: 根据屏幕尺寸缩放内容
开发语言·前端·javascript
fouryears_234175 小时前
Flutter InheritedWidget 详解:从生命周期到数据流动的完整解析
开发语言·flutter·客户端·dart
我好喜欢你~5 小时前
C#---StopWatch类
开发语言·c#
lifallen6 小时前
Java Stream sort算子实现:SortedOps
java·开发语言
IT毕设实战小研6 小时前
基于Spring Boot 4s店车辆管理系统 租车管理系统 停车位管理系统 智慧车辆管理系统
java·开发语言·spring boot·后端·spring·毕业设计·课程设计
cui__OaO8 小时前
Linux软件编程--线程
linux·开发语言·线程·互斥锁·死锁·信号量·嵌入式学习
鱼鱼说测试8 小时前
Jenkins+Python自动化持续集成详细教程
开发语言·servlet·php
艾莉丝努力练剑9 小时前
【洛谷刷题】用C语言和C++做一些入门题,练习洛谷IDE模式:分支机构(一)
c语言·开发语言·数据结构·c++·学习·算法
CHEN5_029 小时前
【Java基础面试题】Java基础概念
java·开发语言
杜子不疼.10 小时前
《Python学习之字典(一):基础操作与核心用法》
开发语言·python·学习