Linux 学习记录48(QT篇)

Linux 学习记录48(QT篇)

在这里插入图片描述

一、消息对话框(QMessageBox)

1. 介绍

消息对话框会给用户提供的一个弹窗,用于提示信息或者询问用户相关问题,并得到答案,使用该对话框,可以使得程序的用户交互性更强
系统提供了两套关于对话框的API,分别是基于属性版,和基于静态成员函数版

2. 基于属性版本

步骤:使用类实例化对象,然后调用相关函数进行设置内容,最后使用exec函数进入执行态

QMessageBox(                             //构造函数函数名
    QMessageBox::Icon icon,              //图标
    const QString &title,                //对话框标题
    const QString &text,                 //对话框文本内容
    QMessageBox::StandardButtons buttons = NoButton,       //对话框提供的按钮,如果有多个,中间用位或隔开
    QWidget *parent = nullptr)         //父组件

举个例子:
//1、使用消息对话框类,实例化对象
    QMessageBox box(                             //调用有参构造实例化对象
                    QMessageBox::Question,        //对话框图标
                    "问题对话框",                  //对话框标题
                    "中午有空吗?一起吃个饭呀?",     //对话框文本内容
                    QMessageBox::Ok | QMessageBox::No, //对话框提供的按钮
                    this);                          //父组件


    //2、调用exec函数进入模态
    //函数原型:virtual int exec();
    //功能:将消息对话框对象进入模态
    //参数:无
    //返回值:用户点击消息对话框中的按钮值
    int ret = box.exec();


    //3、对用户点击后的结果进行判断
    if(ret == QMessageBox::Ok)
    {
        qDebug()<<"没有问题,老地方见";
    }else if(ret == QMessageBox::No)
    {
        qDebug()<<"你什么档次,想跟我一起吃饭";
    }

(1. 关于参数介绍

在这里插入图片描述
在这里插入图片描述

3. 基于静态成员函数版本

该版本的对话框,无需实例化对象,直接调用函数,即可调出一个模态的对话框,静态成员函数版本提供了4个函数

//函数返回值类型是一个标准的按钮,就是用户点击的对话框的按钮值,该函数是静态成员函数
[static] QMessageBox::StandardButton
    QMessageBox::warning(           //函数名
        QWidget *parent,            //父组件,该对话框依附的组件
        const QString &title,       //对话框标题
        const QString &text,        //对话框文本内容
        QMessageBox::StandardButtons buttons = Ok,//对话框提供的按钮
        QMessageBox::StandardButton defaultButton = NoButton)//默认按钮

举个例子:
int ret = QMessageBox::warning(this, tr("My Application"),
                                 tr("The document has been modified.\n"
                                    "Do you want to save your changes?"),
                                 QMessageBox::Save | QMessageBox::Discard
                                 | QMessageBox::Cancel,
                                 QMessageBox::Save);

二、发布软件

1. 配置系统环境变量

配置系统环境变量,将qt的安装路径放入系统变量中

找到QT安装路径中的 mingw73_32 或 mingw73_64
在这里插入图片描述
进入到文件夹中的bin文件夹下
在这里插入图片描述
打开高级系统设置中的环境变量
在这里插入图片描述
选择系统变量中的Path后点击编辑
在这里插入图片描述
将刚刚的两个或一个路径添加
在这里插入图片描述
一路确定结束
以同样的方式再添加以下路径下的两个文件夹中的bin路径
在这里插入图片描述

2. 选择QT编译模式

在这里插入图片描述

这里会生成一个/两个目录 (32/64位)
在这里插入图片描述
选择需要的打开其中的release文件夹,复制其中的.exe文件,这就是QT编译出的可执行文件
在这里插入图片描述
复制它到一个空的文件夹下
在这里插入图片描述
安装shift右击鼠标
选择打开powershell窗口,输入
在这里插入图片描述
在这里插入图片描述
该文件夹就已经发布完成,就可以打包这个文件夹,在其他电脑也能使用了
在这里插入图片描述

三、字体对话框、颜色对话框、文件对话框

1. 字体对话框(QFontDialog)

想要调取系统中的字体对话框,只需要调用QFontDialog类中的静态成员函数getFont即可,会弹出对话框,供用户选择字体

[static] QFont                              //函数返回值类型
    QFontDialog::getFont(                    //函数名
        bool *ok,                             //返回用户是否选中了字体
        const QFont &initial,                 //初始字体
        QWidget *parent = nullptr,            //父组件
        const QString &title = QString())       //对话框标题

举个例子:
  bool ok;
  QFont font = QFontDialog::getFont(&ok, QFont("Times", 12), this);
  if (ok) {
      // font is set to the font the user selected
  } else {
      // the user canceled the dialog; font is set to the initial
      // value, in this case Times, 12.
  }
  
所需类:QFontDialog、QFont

2. 颜色对话框(QColorDialog)

想要调取系统中的颜色对话框,只需要调用QColorDialog类中的静态成员函数getColor函数即可

[static] QColor                                   //函数返回值类型,是一个静态成员函数,所以调用该函数无需实例化对象
    QColorDialog::getColor(                      //函数名
        const QColor &initial = Qt::white,          //初始颜色
        QWidget *parent = nullptr,                   //父组件
        const QString &title = QString())            //对话框标题

所需类:QColorDialog、QColor 

3. 文件对话框(QFileDialog)

想要调取系统中的文件对话框,只需要掉QFileDialog类中的静态成员变量即可得到要打开或者要保存的文件路径,但是,在对文件的打开和关闭使用的是不同的静态成员函数

[static] QString                                 //返回值是一个文件路径的字符串,是一个静态成员函数
    QFileDialog::getOpenFileName(                 //函数名
        QWidget *parent = nullptr,                //父组件
        const QString &caption = QString(),           //窗口标题
        const QString &dir = QString(),               //起始路径
        const QString &filter = QString(),           //过滤器
        QString *selectedFilter = nullptr)           //初始时的过滤器

过滤器的定义格式:"Images (*.png *.xpm *.jpg);;Text files (*.txt);;XML files (*.xml)"
所需类:QFileDialog

[static] QString 
    QFileDialog::getSaveFileName(              //获取保存文件的路径
        QWidget *parent = nullptr, 
        const QString &caption = QString(), 
        const QString &dir = QString(), 
        const QString &filter = QString(), 
        )

4. 文件读写(QFile)

使用QFile实例化一个对象,实例化对象时可以使用文件路径进行实例化工作
调用open函数,打开一个文件,打开文件时要给定打开方式:NotOpen、ReadOnly、WriteOnly、ReadWrite、Append
使用read()、readLine()、readAll()函数进行读取文件中的内容
使用write函数完成向文件中写入数据
使用close函数关闭文件

      QFile file("in.txt");
      if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
          return;


      while (!file.atEnd()) {
          QByteArray line = file.readLine();
          process_line(line);
      }

自制的文本编辑器

已上传,可自行在本文顶部下载(含源码)
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值