news 2026/3/10 12:06:12

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/3/9 20:26:53

Itsycal:Mac菜单栏终极轻量级日历解决方案

Itsycal&#xff1a;Mac菜单栏终极轻量级日历解决方案 【免费下载链接】Itsycal Itsycal is a tiny calendar for your Macs menu bar. http://www.mowglii.com/itsycal 项目地址: https://gitcode.com/gh_mirrors/it/Itsycal Itsycal是一款专为Mac用户设计的精巧日历应…

作者头像 李华
网站建设 2026/3/5 22:36:53

终极免费小说搜索引擎:5分钟快速搭建个人专属阅读平台

终极免费小说搜索引擎&#xff1a;5分钟快速搭建个人专属阅读平台 【免费下载链接】owllook owllook-小说搜索引擎 项目地址: https://gitcode.com/gh_mirrors/ow/owllook OwlLook小说搜索引擎是一个革命性的开源项目&#xff0c;专为网络小说爱好者打造的一站式阅读解决…

作者头像 李华
网站建设 2026/3/7 22:10:38

Blender置换材质全攻略:7个问题诊断与性能优化方案

Blender置换材质全攻略&#xff1a;7个问题诊断与性能优化方案 【免费下载链接】awesome-blender &#x1fa90; A curated list of awesome Blender addons, tools, tutorials; and 3D resources for everyone. 项目地址: https://gitcode.com/GitHub_Trending/aw/awesome-b…

作者头像 李华
网站建设 2026/3/9 17:56:13

数据脱敏处理流程:保护用户隐私的合规性实践

数据脱敏处理流程&#xff1a;保护用户隐私的合规性实践 在大模型日益深入企业核心业务系统的今天&#xff0c;一个现实挑战摆在面前&#xff1a;如何让AI“聪明”起来的同时&#xff0c;又不让它“记太多”&#xff1f;尤其是在金融、医疗、政务等高度敏感领域&#xff0c;模型…

作者头像 李华
网站建设 2026/3/5 23:27:46

MLP-Mixer中的token混合机制:探索视觉特征学习的新路径

MLP-Mixer中的token混合机制&#xff1a;探索视觉特征学习的新路径 【免费下载链接】vision_transformer 项目地址: https://gitcode.com/gh_mirrors/vi/vision_transformer 问题提出&#xff1a;当注意力机制遇上视觉任务的挑战 在计算机视觉领域&#xff0c;Transfo…

作者头像 李华
网站建设 2026/3/4 13:02:54

LoRA-GA梯度累积优化:ms-swift中稳定训练的小批量策略

LoRA-GA梯度累积优化&#xff1a;ms-swift中稳定训练的小批量策略 在当前大模型微调的实际工程中&#xff0c;一个再熟悉不过的场景是&#xff1a;开发者手握一张消费级显卡&#xff0c;比如T4或A10&#xff0c;满怀期待地准备对Qwen3-7B这样的主流大模型进行指令微调&#xff…

作者头像 李华