Qt弹框展示

1.相关说明

文件选择弹框、目录选择弹框、保存文件弹框、颜色选择弹框、字体选择弹框、进度条弹框、输入对话框、标准消息框等

2.相关界面

3.相关代码

#include "widget.h"
#include "ui_widget.h"
#include <QFileDialog>
#include <QProgressDialog>
#include <QElapsedTimer>
#include <QColorDialog>
#include <QFontDialog>
#include <QLineEdit>
#include <QInputDialog>
#include <QMessageBox>Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget)
{ui->setupUi(this);
}Widget::~Widget()
{delete ui;
}
// 打开文件
void Widget::on_btnOpenOneFile_clicked()
{QString curPath = QCoreApplication::applicationDirPath();QString fileName = QFileDialog::getOpenFileName(this, "选择一个文件", curPath, "(*.txt);;(*.jpg *.png);;(*.*)");if(!fileName.isEmpty()){ui->plainTextEdit->appendPlainText(fileName);}
}
// 打开多个文件
void Widget::on_btnOpenManyFiles_clicked()
{QString curPath = QCoreApplication::applicationDirPath();QStringList fileNames = QFileDialog::getOpenFileNames(this, "选择一个或多个文件",curPath, "(*.txt);;(*.jpg *.png);;(*.*)");for(auto &fileName : fileNames){ui->plainTextEdit->appendPlainText(fileName);}
}
// 选择已有目录
void Widget::on_btnChooseDir_clicked()
{QString curPath = QCoreApplication::applicationDirPath();QString selectedDir = QFileDialog::getExistingDirectory(this, "选择目录", curPath);if(!selectedDir.isEmpty()){ui->plainTextEdit->appendPlainText(selectedDir);}
}
// 保存文件
void Widget::on_btnSaveFile_clicked()
{QString curPath = QCoreApplication::applicationDirPath();QString fileName = QFileDialog::getSaveFileName(this, "保存文件", curPath, "(*.txt);;(*.jpg *.png);;(*.*)");if(!fileName.isEmpty()){ui->plainTextEdit->appendPlainText(fileName);}
}// 进度条对话框
void Widget::on_btnProgress_clicked()
{int minValue = 0;int maxValue = 200;QProgressDialog dlgProgress("正在复制文件...", "取消", minValue, maxValue, this);dlgProgress.setWindowTitle("复制文件");dlgProgress.setWindowModality(Qt::WindowModal);connect(&dlgProgress, &QProgressDialog::canceled, [&]{ui->plainTextEdit->appendPlainText("进度已取消!!!");});QElapsedTimer msCounter;for(int i = minValue; i <= maxValue; i++){dlgProgress.setValue(i);dlgProgress.setLabelText(QString::asprintf("当前进度:%d", i));msCounter.start();while(true){if(msCounter.elapsed() > 30){break;}}if(dlgProgress.wasCanceled()){break;}}
}
// 选择颜色
void Widget::on_btnChooseColor_clicked()
{QPalette pale = ui->plainTextEdit->palette();QColor iniColor = pale.color(QPalette::Text);QColor color = QColorDialog::getColor(iniColor, this, "选择颜色");if(color.isValid()){pale.setColor(QPalette::Text, color);ui->plainTextEdit->setPalette(pale);}
}
// 选择字体
void Widget::on_btnChooseFont_clicked()
{QFont iniFont = ui->plainTextEdit->font();bool ok = false;QFont font = QFontDialog::getFont(&ok, iniFont, this, "设置字体");if(ok){ui->plainTextEdit->setFont(font);}
}
// 输入字符串
void Widget::on_btnInputChars_clicked()
{QString dlgTitle = "输入文字对话框";QString txtLabel = "请输入文件名";QString iniInput = "默认文字";QLineEdit::EchoMode echoMode = QLineEdit::Normal; // QLineEdit::Passwordbool ok = false;QString text = QInputDialog::getText(this, dlgTitle, txtLabel, echoMode, iniInput,&ok);if(ok && !text.isEmpty()){ui->plainTextEdit->appendPlainText(text);}
}
// 输入整数
void Widget::on_btnInputInt_clicked()
{QString dlgTitle = "输入整数对话框";QString txtLabel = "设置文本框字体大小";int defaultValue = ui->plainTextEdit->font().pointSize();int minValue = 6;int maxValue = 60;int stepValue = 1;bool ok = false;int inputValue = QInputDialog::getInt(this, dlgTitle, txtLabel, defaultValue, minValue, maxValue, stepValue, &ok);if(ok){QString str = QString("文本框字体大小被设置为:%1").arg(inputValue);ui->plainTextEdit->appendPlainText(str);QFont font = ui->plainTextEdit->font();font.setPointSize(inputValue);ui->plainTextEdit->setFont(font);}
}
// 输入浮点数
void Widget::on_btnInputFloat_clicked()
{QString dlgTitle = "输入浮点数对话框";QString txtLabel = "输入一个浮点数";float defaultValue = 6.14;float minValue = 6;float maxValue = 60;int decimals = 2;bool ok = false;float inputValue = QInputDialog::getDouble(this, dlgTitle, txtLabel, defaultValue, minValue, maxValue, decimals, &ok);if(ok){QString str = QString::asprintf("输入的浮点为:%.2f", inputValue);ui->plainTextEdit->appendPlainText(str);}
}
// 条目选择输入
void Widget::on_btnInputItem_clicked()
{QStringList items;items << "优" << "良" << "中" << "差";QString dlgTitle = "输入项对话框";QString txtLabel = "请选择一个级别";int curIndex = 0;bool editable = false;bool ok = false;QString text = QInputDialog::getItem(this, dlgTitle, txtLabel, items, curIndex, editable, &ok);if(ok && !text.isEmpty()){ui->plainTextEdit->appendPlainText(text);}
}
// question对话框
void Widget::on_btnQuestion_clicked()
{QString dlgTitle = "Question消息框";QString strInfo = "文件已被修改,是否保存?";int result = QMessageBox::question(this, dlgTitle, strInfo,QMessageBox::Yes|QMessageBox::No|QMessageBox::Cancel, QMessageBox::NoButton);if(result == QMessageBox::Yes){ui->plainTextEdit->appendPlainText("Question消息框:Yes被选中");} else if(result == QMessageBox::No){ui->plainTextEdit->appendPlainText("Question消息框:No被选中");}else if(result == QMessageBox::Cancel){ui->plainTextEdit->appendPlainText("Question消息框:Cancel被选中");}else{ui->plainTextEdit->appendPlainText("Question消息框:没有按钮被选中");}
}
// info弹框
void Widget::on_btnInfo_clicked()
{QString dlgTitle = "Infomation消息框";QString strInfo = "文件已打开,请检查";QMessageBox::information(this, dlgTitle, strInfo);}
// warning弹窗
void Widget::on_btnWarning_clicked()
{QString dlgTitle = "Warning消息框";QString strInfo = "文件已被修改";QMessageBox::warning(this, dlgTitle, strInfo);
}
// critical错误弹窗
void Widget::on_btnCritical_clicked()
{QString dlgTitle = "Critical消息框";QString strInfo = "文件已被修改!!!";QMessageBox::critical(this, dlgTitle, strInfo);
}
// 自定义关于
void Widget::on_btnAbout_clicked()
{QString dlgTitle = "About消息框";QString strInfo = "XXXX版本1.0";QMessageBox::about(this, dlgTitle, strInfo);
}
// aboutQt消息框
void Widget::on_btnAboutQt_clicked()
{QString dlgTitle = "aboutQt消息框";QMessageBox::aboutQt(this, dlgTitle);
}

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

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

相关文章

Red Hat Enterprise Linux 6.10 安装图解

引导和开始安装 选择倒计时结束前&#xff0c;通过键盘上下键选择下图框选项&#xff0c;启动图形化安装过程。需要注意的不同主板默认或者自行配置的固件类型不一致&#xff0c;引导界面有所不同。也就是说使用UEFI和BIOS的安装引导界面是不同的&#xff0c;如图所示。若手动调…

go 语言(九)----struct

定义一个结构体 type Book struct {title stringauth string }结构体使用 package mainimport "fmt"//定义一个结构体 type Book struct {title stringauth string }func main() {var book1 Bookbook1.title "Golang"book1.auth "zhang3"fmt…

使用 TiUP 部署 TiDB 集群

TIDB优点 支持分布式且支持事务的关系型数据库&#xff0c;不用考虑分库分表 同时满足了可伸缩&#xff0c;高可用&#xff0c;关系型&#xff0c;支持事务。 基本上按官网的文档来就行了。 在线部署 以普通用户身份登录中控机。以 tidb 用户为例&#xff0c;后续安装 TiUP …

用git bash调用md5sum进行批量MD5计算

对于非常大的文件或者很重要的文件&#xff0c;在不稳定的网络环境下&#xff0c;可能文件的某些字节会损坏。此时&#xff0c;对文件计算MD5即可以校验其完整性。比如本次的 OpenStreetMap 导出包&#xff0c;我的学弟反馈通过网盘下载无法解压&#xff0c;并建议我增加每个文…

MOS管和IGBT管的定义与辨别

MOS管和IGBT管作为现代电子设备使用频率较高的新型电子器件&#xff0c;因此在电子电路中常常碰到也习以为常。可是MOS管和IGBT管由于外形及静态参数相似的很&#xff0c;有时在选择、判断、使用容易出差池。MOS管和IGBT管可靠的识别方法为选择、判断、使用扫清障碍&#xff01…

android使用相机 intent.resolveActivity returns null

问题 笔者使用java进行android开发&#xff0c;启动相机时 intent.resolveActivity returns null takePictureIntent.resolveActivity(getPackageManager()) null详细问题 笔者使用如下代码启动相机 // 启动相机SuppressLint("LongLogTag")private void dispatc…

【LGR-172-Div.4】洛谷入门赛 #19(A—H,c++详解!)

文章目录 【LGR-172-Div.4】洛谷入门赛 #19A.分饼干 I题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样例输入 #2样例输出 #2 提示样例解释 1样例解释 2数据范围与约定思路: 代码 B.分饼干 II题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1 样例 #2样…

2024--Django平台开发-订单项目管理(十四)

day14 订单管理系统 1.关于登录 1.1 UI美化 页面美化&#xff0c;用BootStrap 自定义BooStrapForm类实现。 class BootStrapForm:exclude_filed_list []def __init__(self, *args, **kwargs):super().__init__(*args, **kwargs)# {title:对象,"percent":对象}fo…

电路复习总结

又到了个人最喜欢的电路复习环节&#xff0c;废话不多说一个个复习过来 1.电路基本概念 2.向量表示 现在在看美少女老师教学某一种正弦交流电的办法学的就很舒服 知道复数和极坐标还挺重要可以便于后面数值计算 2024年1月18日19:44:57 根本整理不出来什么东西i 在学习中逐…

测试 ASP.NET Core 中间件

正常情况下&#xff0c;中间件会在主程序入口统一进行实例化&#xff0c;这样如果想单独测试某一个中间件就很不方便&#xff0c;为了能测试单个中间件&#xff0c;可以使用 TestServer 单独测试。 这样便可以&#xff1a; 实例化只包含需要测试的组件的应用管道。发送自定义请…

龙芯+RT-Thread+LVGL实战笔记(30)——电子琴演奏

【写在前面】正值期末,笔者工作繁忙,因此本系列教程的更新频率有所放缓,还望订阅本专栏的朋友理解,请勿催更。笔者在此也简要声明几点: 有些硬件模块笔者并没有,如LED点阵、压力传感模块、RFID模块等,因此这些模块的相关任务暂时无法给出经过验证的代码。其实,教程进行…

排序之归并排序

在计算机科学中&#xff0c;排序是一种常见的操作。它用于将一组元素按照一定的顺序排列。归并排序是一种非常有效的排序算法&#xff0c;其时间复杂度为O(nlogn)&#xff0c;空间复杂度为O(n)。本文将详细介绍归并排序的工作原理和实现方法。 归并排序的工作原理 归并排序的…

智慧之光:ChatGPT 引领工作效率新纪元

随着科技的不断发展&#xff0c;人工智能&#xff08;AI&#xff09;已经逐渐融入我们的日常生活和工作中。其中&#xff0c;ChatGPT 作为一种先进的 AI 技术&#xff0c;正逐步改变我们的工作方式&#xff0c;提升我们的工作效率。本文灸哥将介绍如何利用ChatGPT提升工作效率&…

Pytest插件pytest-django让Django测试更高效

在Django应用开发中&#xff0c;测试是确保应用质量的关键环节。然而&#xff0c;Django自带的测试框架并非总能满足开发者的需求&#xff0c;而Pytest插件 pytest-django 则为我们提供了更为灵活、强大的测试工具。本文将深入介绍 pytest-django 插件的基本用法和实际案例&…

后面的输入框与前面的联动,输入框只能输入正数(不用正则)

概要 提示&#xff1a;这里可以描述概要 前面的输入框是发票金额&#xff0c;后面的输入框是累计发票金额&#xff08;含本次&#xff09;--含本次就代表后倾请求的接口的数据&#xff08;不是保存后返显的-因为保存后返显的是含本次&#xff09;是不含本次的所以在输入发票金…

Linux基础命令[1]-ls

文章目录 1. ls 命令说明2. ls 常用命令参数2.1 -l&#xff08;展示详细信息&#xff09;2.2 -a/-A&#xff08;展示隐藏文件&#xff09;2.3 -t/-c/-r&#xff08;展示信息排序&#xff09;2.4 -h&#xff08;展示文件大小&#xff09;2.5 -R&#xff08;递归展示&#xff09;…

iphone5s基带部分电源部分主主电源供电及

时序: 1.,基带电源的供电&#xff0c;基带电源也叫pmu。 首先时序图说电池提供供电&#xff0c;电池是J6接口&#xff0c;视频习惯把接口称之为座子。查U2_RF芯片&#xff0c;发现供电信号为PP_BATT_VCC_CONN&#xff0c;但是没查到跟电池座子有关系&#xff0c;电池座子写的是…

linux C语言socket函数recv

recv 函数是在 Linux C 语言网络编程中用于从已连接的套接字接收数据的函数。它通常与 TCP 连接一起使用&#xff0c;但也可以用于 UDP&#xff08;尽管对于 UDP&#xff0c;更常使用 recvfrom&#xff0c;因为它还可以接收发送方的地址信息&#xff09;。 函数原型 recv 函数…

SpringMVC基础知识学习笔记

Universe Infinity Inc. 目录 一、学习SpringMVC主要是学什么1、SpringMVC的基本原理2、SpringMVC学习串联 二、快速体验SpringMVC的开发1、新建项目&#xff0c;转成web项目2、引入依赖3、编写Spring的配置类4、配置web启动类&#xff0c;替代web.xml5、编写Handler&#xff…