QT学习之对话框(四)——字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)
2. 在 .cpp 文件中定义该函数void MainWindow:
- 本文目录导读:
- 1、QT学习之对话框
- 2、一. 字体 对 话 框
- 3、二. 消息 对 画 面板
- 4、三. 文件 对 画 面板
- 5、四. 进程 对 画 面板
QT学习之对话框
随着科技的不断发展,软件开发也越来越重要。而在软件开发中,图形用户界面是非常重要的一部分。而在图形用户界面中,各种各样的窗口和控件都起着至关重要的作用。其中,对于一些需要与用户进行交互的操作,比如打开文件、选择字体等等,则需要使用到“对话框”这个控件。
本篇文章将介绍四种常见的QT 对话框:字体对话框、消息对话框、文件对 话 框和进程 对 话 框,并且提供详细步骤和代码示例。
一. 字体 对 话 框
字体 对 画 面板是一个用来设置字体属性(大小、颜色等)的标准 Qt 对象。其通过 QFontDialog 类实现。下面我们就来看看如何使用 QFontDialog 类:
1. 在主窗口类中添加以下成员函数:
“`
void fontDialog();
2. 在 .cpp 文件中定义该函数
void MainWindow::fontDialog()
{
bool ok;
QFont font = QFontDialog::getFont(&ok, QFont(“Helvetica [Cronyx]”, 10), this);
if (ok) {
// 字体设置成功
ui->textEdit->setFont(font);
} else {
// 用户取消了字体设置
}
}
3. 在 .h 文件中添加头文件
#include
4. 在主窗口类的构造函数中连接信号和槽
connect(ui->fontButton, &QPushButton::clicked, this, &MainWindow::fontDialog);
这里我们定义了一个 fontDialog() 函数,该函数实现了打开字体对话框并根据用户选择的字体进行相应操作。具体来说,当用户点击“字体”按钮时,就会调用 fontDialog() 函数。在该函数中,我们使用 QFontDialog 类的 getFont() 方法打开一个标准的 Qt 字体对话框。
其中,参数1 ok 表示是否成功获取到用户选择的字体;参数2 font 是默认显示在对话框上面的字体;参数3 this 表示父对象。
如果用户确定了选定的字体,则将其应用于 QTextEdit 控件(这里是 ui->textEdit)。否则,在控制台输出一条消息表示“用户取消了字体设置”。
二. 消息 对 画 面板
消息对话框是一种常见且重要的 QT 对话框类型。它通常被用来展示一些提示信息、确认信息或警告信息等等。下面我们就来看看如何使用 QMessageBox 类:
void messageDialog();
void MainWindow::messageDialog()
QMessageBox::information(this, tr(“提示”), tr(“这是一条消息!”));
#include
connect(ui->messageButton, &QPushButton::clicked, this, &MainWindow::messageDialog);
在上面的代码示例中,我们定义了一个 messageDialog() 函数,当用户点击“消息”按钮时,就会调用该函数。在该函数中,我们使用 QMessageBox 类的 information() 方法打开一个标准 Qt 消息对话框。
其中参数1表示父对象;参数2表示对话框标题;参数3表示要显示的内容。
三. 文件 对 画 面板
文件 对 画 面板是一种用于打开或保存文件的标准 QT 对象。其通过 QFileDialog 类实现。下面我们就来看看如何使用 QFileDialog 类:
1. 在主窗口类中添加以下成员变量:
“`
QString fileName;
QStringList fileNames;
2. 在 .cpp 文件中定义以下两个成员函数:
![QT学习之对话框(四)——字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)缩略图 QT学习之对话框(四)——字体对话框、消息对话框、文件对话框、进程对话框(超详细中文注释)](https://www.72715.net/wp-content/uploads/2023/05/e6af43c593b35868089e6777692d7aa6.png)
void openFile();
void saveFile();
void MainWindow::openFile()
QString filePath = QFileDialog::getOpenFileName(this,
tr(“选择文件”),
“../”,
tr(“Text Files (*.txt)”));
if (!filePath.isEmpty()) {
QFile file(filePath);
if (!file.open(QIODevice::ReadOnly | QIODevice::Text)) {
QMessageBox::warning(this, tr(“警告”), tr(“无法打开文件!”), QMessageBox::Ok);
return;
}
QTextStream in(&file);
ui->textEdit->setText(in.readAll());
file.close();
void MainWindow::saveFile()
QString filePath = QFileDialog::getSaveFileName(this,
tr(“保存文件”),
if (!file.open(QIODevice::WriteOnly | QIODevice::Text)) {
QMessageBox::warning(this, tr(“警告”), tr(“无法保存文件!”), QMessageBox::Ok);
QTextStream out(&file);
out <textEdit->toPlainText();
file.close();
}
#include
connect(ui->openButton, &QPushButton::clicked, this, &MainWindow::openFile);
connect(ui->saveButton, &QPushButton::clicked,this,&MainWindow::saveFile);
在上面的代码示例中,我们定义了两个成员函数 openFile() 和 saveFile()。当用户点击“打开”按钮时,就会调用 openFile() 函数;当用户点击“保存”按钮时,则会调用 saveFile() 函数。
在这两个函数中,我们使用了 QFileDialog 类的 getOpenFileName() 和 getSaveFileName() 方法打开标准的 Qt 文件对话框。
其中,参数1表示父对象;参数2表示对话框标题;参数3表示默认路径;参数4则是文件过滤器,用于限制用户选择的文件类型。在这里我们设置为文本文件(*.txt)。
如果用户成功选择了某个文件,则会将其加载到 QTextEdit 控件中或者将 QTextEdit 控件中的内容保存到指定位置。
四. 进程 对 画 面板
进程 对 画 面板是一种用于展示进程运行情况和进行操作的 QT 对象。其通过 QProcess 类实现。下面我们就来看看如何使用 QProcess 类:
QProcess *process;
void startProcess();
void stopProcess();
void MainWindow::startProcess()
process = new QProcess(this);
connect(process, &QProcess::readyReadStandardOutput, [=](){
ui->textBrowser->append(process->readAll