news 2026/4/18 7:06:35

QT中,QFileDialog,QColorDialog,QFontDialog,QInputDialog对话框的简单使用

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
QT中,QFileDialog,QColorDialog,QFontDialog,QInputDialog对话框的简单使用

定义BuiltInDialog.h

#ifndef BUILTINDIALOG_H #define BUILTINDIALOG_H #include <QDialog> #include <QTextEdit> #include <QPushButton> #include <QFileDialog> class QTextEdit; class QPushButton; QT_BEGIN_NAMESPACE namespace Ui { class BuiltInDialog; } QT_END_NAMESPACE class BuiltInDialog : public QDialog { Q_OBJECT public: BuiltInDialog(QWidget *parent = nullptr); ~BuiltInDialog(); private: QTextEdit *textEditDisplay; QPushButton *filePushButton; QPushButton *colorPushButton; QPushButton *fontPushButton; QPushButton *inputPushButton; QPushButton *closePushButton; QPushButton *progressPushButton; int num; private slots: void slotFile(); void slotColor(); void slotFont(); void slotInput(); void slotProgress(); }; #endif // BUILTINDIALOG_H

实现BuiltInDialog.cpp

#include "builtindialog.h" #include "ui_builtindialog.h" #include <QTextStream> #include <QColorDialog> #include <QFontDialog> #include <QInputDialog> #include <QProcess> #include <QProgressDialog> #include <windows.h> #include <QVBoxLayout> BuiltInDialog::BuiltInDialog(QWidget *parent) : QDialog(parent) { num = 0; textEditDisplay = new QTextEdit(); filePushButton = new QPushButton("打开"); colorPushButton = new QPushButton("颜色"); fontPushButton = new QPushButton("字体"); inputPushButton = new QPushButton("保存"); closePushButton = new QPushButton("关闭"); progressPushButton = new QPushButton("进度"); QVBoxLayout *rightLayout = new QVBoxLayout(); rightLayout->addWidget(filePushButton); rightLayout->addWidget(colorPushButton); rightLayout->addWidget(fontPushButton); rightLayout->addWidget(inputPushButton); rightLayout->addWidget(progressPushButton); rightLayout->addWidget(closePushButton); QHBoxLayout *mainLayout = new QHBoxLayout; mainLayout->addWidget(textEditDisplay); mainLayout->addLayout(rightLayout); setLayout(mainLayout); connect(filePushButton,SIGNAL(clicked()),this,SLOT(slotFile())); connect(colorPushButton,SIGNAL(clicked()),this,SLOT(slotColor())); connect(fontPushButton,SIGNAL(clicked()),this,SLOT(slotFont())); connect(inputPushButton,SIGNAL(clicked()),this,SLOT(slotInput())); connect(progressPushButton,SIGNAL(clicked()),this,SLOT(slotProgress())); connect(closePushButton,SIGNAL(clicked()),this,SLOT(close())); } BuiltInDialog::~BuiltInDialog() { } void BuiltInDialog::slotFile() { QString str = QFileDialog::getOpenFileName(this, tr("open file dialog"), QDir::home().path(), "Text files(*.txt)"); QFile file(str); if(!file.open(QIODevice::ReadWrite)){ return ; } QTextStream in(&file); while (!in.atEnd()) { QString line = in.readLine(); num++; textEditDisplay->append(line); } } void BuiltInDialog::slotColor() { QPalette palette = textEditDisplay->palette(); QColor color = QColorDialog::getColor(palette.color(QPalette::Text),this); if(color.isValid()){ palette.setColor(QPalette::Text,color); textEditDisplay->setPalette(palette); } } void BuiltInDialog::slotFont() { bool ok; QFont font = QFontDialog::getFont(&ok); if(ok){ textEditDisplay->setFont(font); } } void BuiltInDialog::slotInput() { bool ok; QString filePath = QInputDialog::getText(this,tr("Input Dialog"),tr("InputSavePath:"),QLineEdit::Normal,QDir::home().dirName(),&ok); if(!ok) return; QFile file(filePath); if(!file.open(QIODevice::WriteOnly | QIODevice::Text)){ return ; } QTextStream out(&file); QString a = textEditDisplay->toPlainText(); out << a << "\n"; } void BuiltInDialog::slotProgress() { QProgressDialog *progressDialog = new QProgressDialog(this); QFont font("ZYSong18030",12); progressDialog->setFont(font); progressDialog->setWindowModality(Qt::WindowModal); progressDialog->setMinimumDuration(10); progressDialog->setWindowTitle(tr("Copying.....")); progressDialog->setCancelButtonText(tr("Cancel")); progressDialog->setRange(0,num); for(int i = 1;i < num;i++){ progressDialog->setValue(i); qApp->processEvents(); Sleep(1); if(progressDialog->wasCanceled()) return ; } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 15:53:17

MinerU文档转换工具:从PDF到结构化数据的智能革命

MinerU文档转换工具&#xff1a;从PDF到结构化数据的智能革命 【免费下载链接】MinerU A high-quality tool for convert PDF to Markdown and JSON.一站式开源高质量数据提取工具&#xff0c;将PDF转换成Markdown和JSON格式。 项目地址: https://gitcode.com/GitHub_Trendin…

作者头像 李华
网站建设 2026/4/16 11:08:56

星火应用商店:Linux软件安装的终极解决方案

星火应用商店&#xff1a;Linux软件安装的终极解决方案 【免费下载链接】星火应用商店Spark-Store 星火应用商店是国内知名的linux应用分发平台&#xff0c;为中国linux桌面生态贡献力量 项目地址: https://gitcode.com/spark-store-project/spark-store 还在为Linux系统…

作者头像 李华
网站建设 2026/4/15 12:09:25

Llama4多语言翻译任务微调:ms-swift全球化服务能力

Llama4多语言翻译任务微调&#xff1a;ms-swift全球化服务能力 在跨境电商、跨国客服和内容本地化需求激增的今天&#xff0c;企业对高质量、低延迟的多语言翻译服务提出了前所未有的要求。传统的机器翻译系统往往依赖专用模型与封闭架构&#xff0c;难以快速适配新语种或应对专…

作者头像 李华
网站建设 2026/4/10 16:42:51

MacBook刘海区终极改造神器:三步打造专属音乐控制中心

MacBook刘海区终极改造神器&#xff1a;三步打造专属音乐控制中心 【免费下载链接】boring.notch TheBoringNotch: Not so boring notch That Rocks &#x1f3b8;&#x1f3b6; 项目地址: https://gitcode.com/gh_mirrors/bor/boring.notch 你是否曾为MacBook屏幕上的刘…

作者头像 李华
网站建设 2026/4/15 12:03:02

Agent环境接口定义:构建可交互智能体的标准协议

Agent环境接口定义&#xff1a;构建可交互智能体的标准协议 在大模型技术从“能说会写”迈向“能做会学”的今天&#xff0c;一个核心问题日益凸显&#xff1a;我们如何让模型真正与世界互动&#xff1f; 过去几年&#xff0c;语言模型在文本生成、代码补全等任务上表现惊艳&am…

作者头像 李华
网站建设 2026/4/17 13:21:27

3步构建AI数据分析Web应用:从数据到洞察的智能化升级

3步构建AI数据分析Web应用&#xff1a;从数据到洞察的智能化升级 【免费下载链接】pandas-ai 该项目扩展了Pandas库的功能&#xff0c;添加了一些面向机器学习和人工智能的数据处理方法&#xff0c;方便AI工程师利用Pandas进行更高效的数据准备和分析。 项目地址: https://gi…

作者头像 李华