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.hqwc.cn/news/413640.html

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

相关文章

Windows下安装alipay-sdk-python时,pycrypto安装报错问题处理

1、安装alipay-sdk-python 时&#xff0c;保存内容如下。 Building wheels for collected packages: pycryptoBuilding wheel for pycrypto (setup.py) ... error error: subprocess-exited-with-error python setup.py bdist_wheel did not run successfully.│ exit c…

Conway的生命游戏

文章目录 主要内容一.Conway的“生命游戏”1.玩法代码如下&#xff08;示例&#xff09;: 总结 主要内容 一.Conway的“生命游戏” 1.玩法 Conway的“生命游戏”是细胞自动机的一个例子&#xff1a;一组规则控制由离散细胞组成的区域的行为。在实践中&#xff0c;它会创建一个…

【办公类-21-02】20240118育婴员操作题word打印2.0

作品展示 把12页一套的操作题批量制作10份&#xff0c;便于打印 背景需求 将昨天整理的育婴师操作题共享&#xff0c; 因为题目里面有大量的红蓝颜色文字&#xff0c;中大班办公室都是黑白单面手动翻页打印。只有我待的教务室办公室有彩色打印机打印&#xff08;可以自动双面…

Gitlab添加ssh-key报500错误处理

Gitlab添加ssh-key报500错误 一、查看日志 发现Errno::Enoent(No such file or derectory -ssh): rootasu1:/home/caixin# tail -f /var/log/gitlab/gitlab-rails/production.log二、分析 根据日志提示&#xff0c;好像是缺少文件或目录&#xff0c;后面有个ssh,难首是依赖s…

CVE重要通用漏洞复现java php

在进行漏洞复现之前我们需要在linux虚拟机上进行docker的安装 我不喜欢win上安因为不知道为什么总是和我的vmware冲突 然后我的kali内核版本太低 我需要重新安装一个新的linux 并且配置网络 我相信这会话费我不少时间 查看版本 uname -a 需要5.5或以上的版本 看错了浪…

Leetcode2182. 构造限制重复的字符串

Every day a Leetcode 题目来源&#xff1a;2182. 构造限制重复的字符串 解法1&#xff1a;贪心 双指针 我们先用一个长度为 26 的数组 cnt 统计字符串 s 中每个字符出现的次数&#xff0c;然后从大到小枚举字母表的第 i 个字母&#xff0c;每次取出最多 min⁡(cnt[i], re…

React配置src根目录@

文章目录 1.打开webpack配置文件2.配置webpack 1.打开webpack配置文件 yarn eject or npm run eject 如果报错了记得提前 git commit一下 2.配置webpack 找到 webpack.config.js 文件在 webpack.config.js 文件中找到 alias 配置在alias里添加: path.resolve(src) , 或者 : pa…

密码学学习笔记(二十四):TCP/IP协议栈

TCP/IP协议栈的基础结构包括应用层、传输层、网络层、数据链路层和物理层。 应用层 应用层位于TCP/IP协议栈的最顶层&#xff0c;是用户与网络通信的接口。这一层包括了各种高级应用协议&#xff0c;如HTTP&#xff08;用于网页浏览&#xff09;、FTP&#xff08;用于文件传输…

Unity 编辑器篇|(九)编辑器美化类( GUIStyle、GUISkin、EditorStyles) (全面总结 | 建议收藏)

目录 1. GUIStyle1.1 参数总览1.2 样式代码 2. GUISkin2.1 参数总览2.2 创建自定义Skin 3. EditorStyles2.1 参数总览1.2 反射获取所有EditorStyles 1. GUIStyle GUIStyle是一个用于定制GUI控件样式的类&#xff0c;它包含了控件的外观属性&#xff0c;如字体、颜色、背景等。…

html + css + js简单的项目

以下内容直接复制粘贴就能运行 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>Document</title&…

傲空间私有部署 Linux 指南

推荐阅读 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;一&#xff09; 智能化校园&#xff1a;深入探讨云端管理系统设计与实现&#xff08;二&#xff09; 安装 docker 请下载对应的 Docker&#xff0c;安装完成后启动。Install Docker Engine on Ubu…