【嵌入式——QT】标准对话框

【嵌入式——QT】标准对话框

  • 文件对话框
  • 颜色对话框
  • 字体对话框
  • 输入对话框
  • 消息框
  • 代码示例

文件对话框

QFileDialog
常用静态函数

  • getOpenFileName:选择打开一个文件;
  • getOpenFileNames:选择打开多个文件;
  • getSaveFileName:选择保存一个文件;
  • getExistingDirectory:选择一个已有的目录;
  • getOpenFileUrl:选择打开一个文件,可选择远程网络文件;

图示
在这里插入图片描述

颜色对话框

QColorDialog
常用静态函数

  • getColor:选择颜色;

图示
在这里插入图片描述

字体对话框

QFontDialog
常用静态函数

  • getFont:选择字体;

图示
在这里插入图片描述

输入对话框

QInputDialog
常用静态函数

  • getText:输入单行文字;
  • getInt:输入整数;
  • getDouble:输入浮点数;
  • getItem:从一个下拉列表框中选择输入;
  • getMultiLineText:输入多行字符串;

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

消息框

QMessageBox

常用静态函数

  • information:信息提示对话框;
  • question:询问并获取是否确认的对话框;
  • warning:警告信息提示对话框;
  • critical:错误信息提示对话框;
  • about:设置自定义信息的关于对话框;
  • aboutQt:关于Qt的对话框;

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

代码示例

DialogDialog.h

#ifndef DIALOGDIALOG_H
#define DIALOGDIALOG_H#include <QDialog>namespace Ui
{class DialogDialog;
}class DialogDialog : public QDialog
{Q_OBJECTpublic:explicit DialogDialog(QWidget* parent = nullptr);~DialogDialog();private slots:void on_pushButtonOpen_clicked();void on_pushButtonOpens_clicked();void on_pushButtonSelect_clicked();void on_pushButtonSave_clicked();void on_pushButtonColor_clicked();void on_pushButtonFont_clicked();void on_pushButtonQuestion_clicked();void on_pushButtonInformation_clicked();void on_pushButtonWarning_clicked();void on_pushButtonCritical_clicked();void on_pushButtonAbout_clicked();void on_pushButtonAboutQt_clicked();void on_pushButtonStr_clicked();void on_pushButtonInt_clicked();void on_pushButtonFloat_clicked();void on_pushButtonItem_clicked();void on_pushButtonClear_clicked();private:Ui::DialogDialog* ui;
};#endif // DIALOGDIALOG_H

DialogDialog.cpp

#include "DialogDialog.h"
#include "ui_DialogDialog.h"
#include <QDir>
#include <QFileDialog>
#include <QColorDialog>
#include <QFontDialog>
#include <QLineEdit>
#include <QInputDialog>
#include <QMessageBox>
DialogDialog::DialogDialog(QWidget* parent): QDialog(parent), ui(new Ui::DialogDialog)
{ui->setupUi(this);
}DialogDialog::~DialogDialog()
{delete ui;
}void DialogDialog::on_pushButtonOpen_clicked()
{QString curPath = QDir::currentPath();QString aFileName = QFileDialog::getOpenFileName(this, u8"选择一个文件", curPath);if(!aFileName.isEmpty()) {ui->plainTextEdit->appendPlainText(aFileName);}
}void DialogDialog::on_pushButtonOpens_clicked()
{QString curPath = QDir::currentPath();QStringList aFileNames = QFileDialog::getOpenFileNames(this, u8"选择一个文件", curPath);for(int i=0; i<aFileNames.count(); i++) {ui->plainTextEdit->appendPlainText(aFileNames.at(i));}
}void DialogDialog::on_pushButtonSelect_clicked()
{QString curPath = QCoreApplication::applicationDirPath();QString selectedDir = QFileDialog::getExistingDirectory(this, u8"选择一个目录", curPath, QFileDialog::ShowDirsOnly);if(!selectedDir.isEmpty()) {ui->plainTextEdit->appendPlainText(selectedDir);}
}void DialogDialog::on_pushButtonSave_clicked()
{QString curPath = QCoreApplication::applicationDirPath();QString fileName = QFileDialog::getSaveFileName(this, u8"保存文件", curPath);if(!fileName.isEmpty()) {ui->plainTextEdit->appendPlainText(fileName);}
}void DialogDialog::on_pushButtonColor_clicked()
{QPalette pal = ui->plainTextEdit->palette();//获取现有paletteQColor initColor = pal.color(QPalette::Text);//现有文字颜色QColor color = QColorDialog::getColor(initColor, this, u8"选择颜色");if(color.isValid()) {pal.setColor(QPalette::Text, color);ui->plainTextEdit->setPalette(pal);}
}void DialogDialog::on_pushButtonFont_clicked()
{QFont initFont = ui->plainTextEdit->font();bool ok = false;QFont font = QFontDialog::getFont(&ok, initFont);if(ok) {ui->plainTextEdit->setFont(font);}
}void DialogDialog::on_pushButtonQuestion_clicked()
{QMessageBox::StandardButton defaultBtn = QMessageBox::NoButton;QMessageBox::StandardButton result;result = QMessageBox::question(this, u8"question消息框", u8"文件已被修改,是否保存", QMessageBox::Yes|QMessageBox::No | QMessageBox::Cancel, defaultBtn);if(result == QMessageBox::Yes) {ui->plainTextEdit->appendPlainText(u8"quesstion消息框 Yes 被选择");} else if(result == QMessageBox::No) {ui->plainTextEdit->appendPlainText(u8"quesstion消息框 No 被选择");} else if(result == QMessageBox::Cancel) {ui->plainTextEdit->appendPlainText(u8"quesstion消息框 Cancel 被选择");} else {ui->plainTextEdit->appendPlainText(u8"quesstion消息框无选择");}
}void DialogDialog::on_pushButtonInformation_clicked()
{QMessageBox::information(this, u8"information消息框", u8"文件已经打开,字体大小已设置", QMessageBox::Ok, QMessageBox::NoButton);
}void DialogDialog::on_pushButtonWarning_clicked()
{QMessageBox::warning(this, u8"warning消息框", u8"文件内容已被修改");
}void DialogDialog::on_pushButtonCritical_clicked()
{QMessageBox::critical(this, u8"critical消息框", u8"有不明程序访问网络");
}void DialogDialog::on_pushButtonAbout_clicked()
{QMessageBox::about(this, u8"about消息框", u8"软件版本1.0.0");
}void DialogDialog::on_pushButtonAboutQt_clicked()
{QMessageBox::aboutQt(this, u8"aboutQt消息框");
}void DialogDialog::on_pushButtonStr_clicked()
{QLineEdit::EchoMode echoMode = QLineEdit::Normal;bool ok = false;QString text = QInputDialog::getText(this, u8"输入文字对话框", u8"输入文件名", echoMode, u8"新建文件.txt", &ok);if(ok && !text.isEmpty()) {ui->plainTextEdit->appendPlainText(text);}
}void DialogDialog::on_pushButtonInt_clicked()
{int defaultValue = ui->plainTextEdit->font().pointSize();int minValue = 6, maxValue = 50, stepValue = 1;bool ok = false;int inputValue = QInputDialog::getInt(this, u8"输入整数对话框", u8"设置字体大小", defaultValue, minValue, maxValue, stepValue, &ok);if(ok) {QFont font = ui->plainTextEdit->font();font.setPointSize(inputValue);ui->plainTextEdit->setFont(font);}
}void DialogDialog::on_pushButtonFloat_clicked()
{float defaultValue = 3.13;float minValue = 0, maxValue = 1000;int decimals = 2;bool ok = false;float inputValue = QInputDialog::getDouble(this, u8"输入浮点数对话框", u8"输入浮点数", defaultValue, minValue, maxValue, decimals, &ok);if(ok) {QString str = QString::asprintf(u8"输入一个浮点数:%.2f", inputValue);ui->plainTextEdit->appendPlainText(str);}
}void DialogDialog::on_pushButtonItem_clicked()
{QStringList items;items<<u8"优秀"<<u8"良好"<<u8"合格"<<u8"不合格";int curIndex = 0;bool editable = true;bool ok = false;QString text = QInputDialog::getItem(this, u8"条目选择对话框", u8"选择级别", items, curIndex, editable, &ok);if(ok && !text.isEmpty()) {ui->plainTextEdit->appendPlainText(text);}
}void DialogDialog::on_pushButtonClear_clicked()
{ui->plainTextEdit->clear();
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/521513.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

WPF 消息提示 类似toast方式

WPF里面的消息提示一般都是MessageBox.Show()&#xff0c;这种样式不是很好看&#xff0c;所以就想办法重新搞了一个类似弹出消息的功能。原理很简单&#xff0c;就是弹出一个新窗体&#xff0c;然后等几秒窗体自动关闭。 先上效果图&#xff1a; 新建一个MsgHelper.cs类&…

Linux运维工程师不可或缺的10款工具

运维工程师在日常工作中频繁运用的10款工具&#xff0c;并细致阐述每款工具的功能、适用场景以及其卓越之处。 1. Shell脚本&#xff1a; 功能&#xff1a;主要用于自动化任务和批处理作业。 适用场景&#xff1a;频繁用于文件处理、系统管理、简单的网络管理等操作。 优势&…

重生奇迹mu战士大师技能加点怎么加

1、在重生奇迹MU中&#xff0c;战士大师的技能加点需要根据个人的游戏风格和需求来决定。一般来说&#xff0c;战士大师可以优先加点力量和体力&#xff0c;以增加攻击和生存能力。同时&#xff0c;可以适当加点敏捷来提高闪避和命中率。 2、在技能方面&#xff0c;可以根据个人…

云计算项目九:K8S安装

K8S安装 Kube-master安装 按照如下配置准备云主机 防火墙相关配置&#xff1a;禁用selinux&#xff0c;禁用swap&#xff0c;且在firewalld-*。上传kubernetes.zip 到跳板机 配置yum仓库&#xff08;跳板机&#xff09; 跳板机主机配置k8s软件源服务端 [rootjs ~]# yum -y…

5G工业网关是什么?

随着科技的飞速发展&#xff0c;5G技术已经逐渐渗透到我们生活的方方面面。而在工业领域&#xff0c;5G工业网关作为连接工业设备与网络的关键组件&#xff0c;正发挥着越来越重要的作用。HiWoo Box其5G工业网关产品以其卓越的性能和稳定性&#xff0c;正助力企业实现数字化转型…

考研数学|到底要不要做张宇《1000题》

根据你自身能力来选择真正适合你的题集&#xff0c;最后的做题效果会加倍。&#x1f60e; 我先分析一下张宇1000题集的特点&#xff0c;张宇1000更适合基础不错&#xff0c;想冲刺高分的同学。 1000分为强化和提高&#xff0c;是没有基础部分的&#xff0c;着重考察数学概念和技…

@大学生必看内容!QT创建C++项目,并使用Opencv进行图像处理!

一、创建C项目 二、向C项目部署opencv。详细步骤&#xff1a;查看地址。 避坑&#xff01;&#xff01;

ChatGPT 升级出现「我们未能验证您的支付方式/we are unable to authenticate」怎么办?

ChatGPT 升级出现「我们未能验证您的支付方式/we are unable to authenticate」怎么办&#xff1f; 在订阅 ChatGPT Plus 时&#xff0c;有时候会出现以下报错 &#xff1a; We are unable to authenticate your payment method. 我们未能验证您的支付方式。 出现 unable to a…

连接kafka报错:java.io.IOException: Can‘t resolve address:

修改电脑host文件:C:\Windows\System32\drivers\etc\hosts 加上一行 192.168.1.XXX MHA_SLAVE2&#xff08;192.168.1.XXX 这个是安装kafka 的服务器地址&#xff0c;MHA_SLAVE2是kafka的容器id&#xff09;

(实用)如何在vscode设置自己的代码片段,提高开发效率

项目背景 很多时候&#xff0c;我们新建vue文件的时&#xff0c;都需要把重复的代码结构重新输入或者copy过来&#xff0c;对开发效率照成影响。&#x1f62b; 可以通过键入关键词 vue3 快速生成代码片段 构建效果 操作步骤 在vscode左下角&#xff0c;点击设置按钮&#xff0…

4月9日至10日Hack.Summit 2024亚洲首秀:Web3开发者齐聚香港数码港

Hack.Summit() 是一系列 Web3 开发者大会。本届活动将于 2024 年 4 月 9 日至 4 月 10 日在香港数码港举行。自十年前首次举办以来&#xff0c;此次会议标志着 Hack.Summit() 首次在亚洲举办&#xff0c;香港被选为首次亚洲主办城市&#xff0c;这对 Hack VC 和该地区都具有重要…

喜报|炼石免改造数据安全入选上海网安产业创新大会优秀案例

近日&#xff0c;上海网络安全产业创新大会隆重召开&#xff0c;上海普陀区委副书记、区长肖文高&#xff0c;上海市经济和信息化委员会总工程师葛东波出席并致辞&#xff0c;普陀区副区长肖立出席。大会以“产业赋能、生态打造”为主题&#xff0c;为发掘数据安全领域的优秀产…