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

news2024/11/24 16:56:44

【嵌入式——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_OBJECT

public:
    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();//获取现有palette
    QColor 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.coloradmin.cn/o/1512371.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

36+程序员3站考研:国家线轻松拿捏

基本情况是&#xff1a;年龄较大&#xff0c;比36还大&#xff0c;本科是自考&#xff0c;十几年来一直从事编程相关工作。 第一年考数学太慌了&#xff0c;选择题全蒙的&#xff0c;结果填空题一道没算对&#xff0c;大题全不会&#xff0c;所以尽管总分280多但是数学没过国家…

制造行业大数据应用:四大领域驱动产业升级与智慧发展

一、大数据应用&#xff1a;制造行业的智慧引擎 随着大数据技术的不断突破与普及&#xff0c;制造行业正迎来一场前所未有的变革。大数据应用&#xff0c;如同智慧引擎一般&#xff0c;为制造行业注入了新的活力&#xff0c;推动了产业升级与创新发展。 二、大数据应用在制造行…

测试用例的设计(2)

目录 1.前言 2.正交排列(正交表) 2.1什么是正交表 2.2正交表的例子 2.3正交表的两个重要性质 3.如何构造一个正交表 3.1下载工具 3.1构造前提 4.场景设计法 5.错误猜测法 1.前言 我们在前面的文章里讲了测试用例的几种设计方法,分别是等价类发,把测试例子划分成不同的类…

Druid连接池经常性断链问题

前段时间有应用使用Druid连接池经常的提示断链报错&#xff0c;整个问题排查分析过程很有意思。这里将Druid连接池、数据库层以及负载均衡层的配置分析下&#xff0c;记录整个问题的分析过程&#xff0c;同时梳理下Druid连接池的配置和连接保活及回收机制。 1、问题背景 应用…

【图文详解】Maven Helper插件解决Maven冲突

文章目录 插件问题解决过程 在面试中解决问题的能力和思路是考察的重点&#xff0c;面试官问会问我们有没有解决过maven冲突。以下造了一个maven冲突&#xff0c;手把手教学如何解决Maven冲突。 插件 插件在idea插件中搜索Maven Helper 问题 解决过程 根据上面日志知道是log…

基于SWOT的智能手机企业财务战略研究1.62

摘 要 近些年&#xff0c;网络技术日新月异&#xff0c;智能手机深受消费者喜爱&#xff0c;人们通过网络&#xff0c;手机应用&#xff0c;可以极大地方便人们学习&#xff0c;工作等等。由于国家对电信行业的大力支持&#xff0c;中国消费者群体逐步成为最具潜力的手机购买者…

【Emgu CV教程】9.3、形态学常用操作之开运算

文章目录 一、相关概念1.什么叫开运算3.开运算的函数 二、演示1.原始素材2.代码3.运行结果 一、相关概念 1.什么叫开运算 腐蚀、膨胀已经讲完&#xff0c;这两个是最基础的形态学操作。这次讲的是开运算&#xff0c;它是一个先腐蚀、后膨胀的过程。原始图像先被腐蚀&#xff…

对GIS与游戏引擎(UE4 或 U3D)结合的看法

GIS与游戏引擎结合&#xff0c;这在6年前就已经很多公司在进行探索了&#xff0c;经过这几年的发展&#xff0c;结合当前的政策&#xff0c;从以下几方面说一下我的看法&#xff1a; 1.GIS客户都是特殊单位及领域。2018年后&#xff0c;国内已经对国产化有明确要求了&#xff0…

Spring中使用自带@Autowired注解实现策略模式

场景 SpringBoot中策略模式工厂模式业务实例(接口传参-枚举类查询策略映射关系-执行不同策略)规避大量if-else&#xff1a; SpringBoot中策略模式工厂模式业务实例(接口传参-枚举类查询策略映射关系-执行不同策略)规避大量if-else_springboot编写策略工厂-CSDN博客 设计模式…

BUUCTF-----[SWPU2019]Web1

打开页面&#xff0c;原本以为是二次注入,结果不是&#xff0c;先注册一个账户 在申请发布广告中&#xff0c;发现反射性xss(然而没有什么用) 在广告申请名字中发现注入点 开始注入 通过一系列的测试&#xff0c;发现系统过滤了#&#xff0c;or&#xff0c;空格 orde…

【C++庖丁解牛】vector容器的简易模拟实现(C++实现)(最后附源码)

&#x1f341;你好&#xff0c;我是 RO-BERRY &#x1f4d7; 致力于C、C、数据结构、TCP/IP、数据库等等一系列知识 &#x1f384;感谢你的陪伴与支持 &#xff0c;故事既有了开头&#xff0c;就要画上一个完美的句号&#xff0c;让我们一起加油 目录 前言vector容器代码实现内…

xss.haozi.me靶场“0x0B-0x12”通关教程

君衍. 一、0x0B 实体编码绕过二、0x0C script绕过三、0x0D 注释绕过四、0X0E ſ符号绕过五、0x0F 编码解码六、0x10 直接执行七、0x11 闭合绕过八、0x12 闭合绕过 一、0x0B 实体编码绕过 我们首先构造payload进行测试&#xff1a; 这里我们可以看到全部转为了大写&#xff0c…

低压线性恒流LED恒流驱动芯片SM15633EH:用于洗墙灯和线条灯

洗墙灯和线条灯是两种常见的LED照明产品&#xff0c;它们都需要使用LED恒流驱动芯片来确保稳定、可靠的电流供应&#xff0c;从而保证LED的使用寿命和亮度。 对于洗墙灯而言&#xff0c;由于其发出的光线需要覆盖较大的区域&#xff0c;因此需要使用较大功率的LED芯片&#xf…

rust入门(1)创建项目

安装 vscode 安装插件 rust-analyzerNative Debug vscode 配置自动格式化代码 settings.json{"editor.defaultFoldingRangeProvider": null,"[rust]": {"editor.defaultFormatter": "rust-lang.rust-analyzer", // Makes the magi…

mysql5.6---windows和linux安装教程和忘记密码怎么办

一、windows安装 1.完成解压 解压完成之后将其放到你喜欢的地址当中去&#xff0c;这里我默认放在了D盘&#xff0c;这是我的根目录 2.配置环境变量 我的电脑->属性->高级->环境变量->系统变量 选择PATH,在其后面添加: (注意自己的安装地址) D:\mysql-5.6.49…

在域控批量导出用户及其所在路径的信息

在Windows Server的Active Directory环境中&#xff0c;要批量导出用户及其所在OU&#xff08;组织单位&#xff09;的信息&#xff0c;可以使用PowerShell命令来实现。以下是一个简单的示例&#xff1a; Get-ADUser -Filter * -Properties CanonicalName | Select-Object Nam…

CCCorelib 点云球形特征(CloudCompare内置算法库)

文章目录 一、简介二、实现代码三、实现效果参考资料一、简介 这里基于每个点的邻域协方差来获取点云中具有的球形几何特征的点,计算方式如下图所示: 二、实现代码 // CloudCompare #include <CCCoreLib/PointCloudTpl.h> #include <CCCoreLib/

数据库基础理论知识

1.基本概念 数据(Data)&#xff1a;数据库存储的基本对象。数字、字符串、图形、图像、音频、视频等数据库(DB)&#xff1a;在计算机内&#xff0c;永久存储、有组织、可共享的数据集合数据库管理系统(DBMS)&#xff1a;管理数据库的系统软件数据库系统(DBS):DBDBMSDBADBAP 数…

文章解读与仿真程序复现思路——电网技术EI\CSCD\北大核心《考虑碳捕集机组与氢储能系统协调运行的源荷储低碳经济调度》

本专栏栏目提供文章与程序复现思路&#xff0c;具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

机器人ChatGPT来了,80亿参数、前OpenAI人员经数年打造

严格地说&#xff0c;是“拾取与放置任务”版本的ChatGPT来了。除了自然语言交流&#xff0c;还能像Sora一样生成视频。 有了机器人基础模型RFM-1&#xff0c;使用简单英语就能指导机器人完成拣选工作。 机器人 AI 公司 Covariant CEO Peter Chen ‍坐在一个聊天机器人面前&…