【嵌入式——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_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.mfbz.cn/a/452701.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

如何使用ArcGIS Pro生成带计曲线等高线

等高线作为常见的地图要素经常会被使用到&#xff0c;一般情况下生成的等高线是不带计曲线的&#xff0c;在某些情况下我们需要带计曲线的等高线&#xff0c;这里为大家介绍一下ArcGIS Pro生成带计曲线等高线的方法&#xff0c;希望能对你有所帮助。 数据来源 教程所使用的数…

13、设计模式之模板模式(Template)

一、什么是模板模式 模板模式是一种基于继承实现的设计模式&#xff0c;它是行为型的模式。 主要思想是将定义的算法抽象成一组步骤&#xff0c;在抽象类种定义算法的骨架&#xff0c;把具体的操作留给子类来实现。 通俗地说&#xff0c;模板模式就是将某一行为制定一个框架&…

vue3 实现一个tab切换组件

一. 效果图 二. 代码 文件 WqTab.vue: <template><div ref"wqTabs" class"wq-tab"><template v-for"tab in tabs" :key"tab"><div class"tab-item" :class"{ ac: tabActive tab.key }" c…

LeetCode102题:二叉树的层序遍历(python3)

代码思路&#xff1a;使用队列先进先出的特性&#xff0c;queue[]不为空进入for循环&#xff0c;tmp存储每层的节点&#xff0c;将结果添加至res[]中。 python中使用collections中的双端队列deque()&#xff0c;其popleft()方法可达到O(1)时间复杂度。 class Solution:def lev…

uni-app开发特点和开发流程

uni-app是一个基于Vue.js框架的跨平台应用开发框架&#xff0c;通过一套代码可以同时运行在多个平台上&#xff0c;包括iOS、Android、H5等。它采用了基于流布局的页面渲染机制&#xff0c;可以自动适配不同平台的屏幕尺寸和分辨率。uniapp官网&#xff1a;https://uniapp.dclo…

概率与常见的概率分布

概率是数据分析、机器学习中最基础的知识。也是在生活中最实用的一门学科&#xff0c;学了很多大道理不一定能过好一生&#xff0c;学好概率则有一定概率会变得更好。为大概率坚持&#xff0c;为小概率备份。 概率与分布 要想了解概率&#xff0c;首先得搞清楚概率和概率分布的…

2024蓝桥杯每日一题(区间合并)

一、第一题&#xff1a;挤牛奶 解题思路&#xff1a;区间合并 区间合并模板题 【Python程序代码】 n int(input()) a [] for i in range(n):l,r map(int,input().split())a.append([l,r]) def cmp(x):return x[0],x[1] a.sort(keycmp) res1,res20,0 st,ed a[0][0…

SQLiteC/C++接口详细介绍之sqlite3类(五)

快速跳转文章列表&#xff1a;SQLite—系列文章目录 上一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;四&#xff09; 下一篇&#xff1a;SQLiteC/C接口详细介绍之sqlite3类&#xff08;六&#xff09;&#xff08;未发表&#xff09; 14.sqlite3_busy_handle…

猫咪挑食不吃猫粮是为什么?适口性好、普口性价的主食冻干推荐

现在咱养猫人个个吧自家的小猫咪当成宝贝宠着&#xff0c;宠着宠着一些坏习惯就出来。 然而&#xff0c;这种宠爱有时也会导致猫咪养成挑食的不良习惯。那么&#xff0c;当猫咪拒绝吃猫粮时&#xff0c;我们应该如何应对呢&#xff1f;今天跟大家一起来分析分析猫咪挑食不吃猫…

Claude3相较于GPT4有哪些优点?

Claude 最实在的一点是即使是普通用户&#xff0c;也能用到上传文件、上传图片这些功能&#xff08;只是用的模型比付费版性能差一些&#xff0c;对普通用户开放的是 Sonnet 版本&#xff0c;付费用户是 Opus 版本&#xff09;。 但是 ChatGPT 就不行&#xff0c;免费的 GPT-3…

唯众物联网+地理科学交付云南师范大学地理学部教学实验室项目

近日&#xff0c;云南师范大学地理学部教学实验室建设项目顺利交付。该项目的成功落地&#xff0c;标志着物联网技术与地理科学教育的深度融合&#xff0c;为云南师范大学的地理教学提供了全新的教学平台与资源。该项目以物联网技术为核心&#xff0c;结合地理科学的特点&#…

UI 学习 二 可访问性 模式

一 颜色对比 颜色和对比度可以用来帮助用户看到和理解应用程序的内容&#xff0c;与正确的元素交互&#xff0c;并理解操作。 颜色可以帮助传达情绪、语气和关键信息。可以选择主色、辅助色和强调色来支持可用性。元素之间足够的颜色对比可以帮助低视力的用户看到和使用你的应…

Qt QDateTime类使用

一.Qt datetime 介绍 Qt中的QDateTime类是用于处理日期和时间的组合的类&#xff0c;它提供了丰富的功能来操作和格式化日期时间数据。以下是其主要特点和用法&#xff1a; 构造函数&#xff1a;QDateTime可以通过组合QDate&#xff08;日期&#xff09;和QTime&#xff08;时…

微信小程序之vue按钮切换内容变化

效果图如下&#xff1b; 上代码 <template><view class"content"><view class"searchDiv"><view class"paytab"><view class"buttab" v-for"(t,index) in tabList" :key"index" clic…

基于java+springboot开发的计算机毕业设计网文论坛管理系统设计与实现【附源码】

基于javaspringboot开发的计算机毕业设计网文论坛管理系统设计与实现【附源码】 &#x1f345; 作者主页 央顺技术团队 &#x1f345; 欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; &#x1f345; 文末获取源码联系方式 &#x1f4dd; &#x1f345; 查看下方微信号获取联…

windows环境,gitbash可以连接拉取代码,但是idea没有权限

问题如图&#xff1a; 解决办法&#xff1a; 将idea中的git设为本地 即&#xff1a;将git执行文件路径指向本地 githome\cmd\git.exe而非githome\bin\git.exe

15、设计模式之迭代器模式(Iterator)

一、什么是迭代器模式 迭代器模式是一种行为型设计模式&#xff0c;它提供了一种统一的方式来访问集合对象中的元素&#xff0c;而不是暴露集合内部的表示方式。简单地说&#xff0c;就是将遍历集合的责任封装到一个单独的对象中&#xff0c;我们可以按照特定的方式访问集合中的…

一道题学会如何使用哈希表

给你一个整数数组 nums 和一个整数 k &#xff0c;请你统计并返回 该数组中和为 k 的子数组的个数 。 子数组是数组中元素的连续非空序列。 示例 1&#xff1a; 输入&#xff1a;nums [1,1,1], k 2 输出&#xff1a;2示例 2&#xff1a; 输入&#xff1a;nums [1,2,3], …

【2024.03.12】定时执行专家 V7.2 发布 - TimingExecutor V7.2 Release

目录 ▉ 软件介绍 ▉ 新版本 V7.2 下载地址 ▉ V7.2 新功能 ▼2024-03-12 V7.2 - 更新日志 ▉ V7.x 新UI设计 ▉ 软件介绍 《定时执行专家》是一款制作精良、功能强大、毫秒精度、专业级的定时任务执行软件。软件具有 25 种【任务类型】、12 种【触发器】触发方式&#x…

Python合并两张图片 | 先叠透明度再合并 (附Demo)

目录 前言正文 前言 用在深度学习可增加噪音&#xff0c;增加数据集等 推荐阅读&#xff1a;Pytorch 图像增强 实现翻转裁剪色调等 附代码&#xff08;全&#xff09; 正文 使用Pillow库来处理图像&#xff08;以下两张图来自网络&#xff09; 图一&#xff1a; 图二&…
最新文章