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);
}
自制的文本编辑器
已上传,可自行在本文顶部下载(含源码)