当前位置: 首页 > news >正文

QT QFileDialog 类

  • QFileDialog 类

QFileDialog 类

QFileDialog 是 Qt 库中的一个类,用于提供文件选择对话框,
允许用户选择文件或目录。QFileDialog 提供了多种静态方法和实例方法,
用于创建和配置文件对话框,并获取用户选择的文件或目录。

QObject└── QWidget└── QDialog└── QFileDialog
QObject:所有 Qt 对象的基类,提供对象树管理、信号和槽机制、事件处理等核心功能。
QWidget:所有用户界面组件的基类,提供基本的窗口功能。
QDialog:用于创建对话框窗口,通常用于与用户进行交互。
QFileDialog:用于提供文件选择对话框,允许用户选择文件或目录。
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QMainWindow>
#include <QDialog>
#include <QLabel>
#include <QPushButton>
#include <QBoxLayout>
#include <QFileDialog>
#include <QLineEdit>
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACEclass MainWindow : public QMainWindow
{Q_OBJECTpublic:MainWindow(QWidget *parent = nullptr);~MainWindow();private:QLabel * FileNameLabel;QLineEdit * FileNameLineEdit;QPushButton * OpenButton;QLabel * FilesizeLabel;QLineEdit * FilesizeLineEdit;QPushButton * FilesizeButton;Ui::MainWindow *ui;private slots:void GetFileInfo();void GetFilesize();};
#endif // MAINWINDOW_H
#include <QMessageBox>
#include "mainwindow.h"
#include "./ui_mainwindow.h"MainWindow::MainWindow(QWidget *parent): QMainWindow(parent), ui(new Ui::MainWindow)
{ui->setupUi(this);//创建Qdialog窗体设置垂直布局//创建Qlabel控件QDialog *dialog = new QDialog(this);dialog->setWindowTitle("Dialog");//dialog->resize(400, 600);//设置背景颜色//dialog->setStyleSheet("background-color: rgb(25, 210, 55);");//设置dialog布局QGridLayout *vboxLayout = new QGridLayout(dialog);FileNameLabel =new QLabel("文件名:", dialog);FileNameLineEdit=new QLineEdit(dialog);OpenButton=new QPushButton("打开文件", dialog);//创建水平布局QHBoxLayout *hboxLayout = new QHBoxLayout();hboxLayout->addWidget(FileNameLabel);hboxLayout->addWidget(FileNameLineEdit);hboxLayout->addWidget(OpenButton);//添加到vboxLayoutvboxLayout->addLayout(hboxLayout, 0, 0 );FilesizeLabel =new QLabel("文件大小:", dialog);FilesizeLineEdit=new QLineEdit(dialog);QHBoxLayout *hboxLayout2 = new QHBoxLayout();hboxLayout2->addWidget(FilesizeLabel);hboxLayout2->addWidget(FilesizeLineEdit);vboxLayout->addLayout(hboxLayout2, 1, 0 );FilesizeButton=new QPushButton("获取文件大小", dialog);vboxLayout->addWidget(FilesizeButton, 2, 0);//设置信号槽connect(OpenButton, SIGNAL(clicked()), this, SLOT(GetFileInfo()));connect(FilesizeButton, SIGNAL(clicked()), this, SLOT(GetFilesize()));dialog->show();
}
void MainWindow::GetFileInfo(){//打开一个文件选择对话框QString fileName = QFileDialog::getOpenFileName(this, "打开文件", "", "All Files (*)");//判断文件是否存在if (fileName.isEmpty()) {QMessageBox::warning(this, "警告", "请选择文件");return;}//显示文件名FileNameLineEdit->setText(fileName);}
void MainWindow::GetFilesize(){//获取文件大小QString fileName = FileNameLineEdit->text();//获取文件名QFile file(fileName);//打开文件//判断文件是否存在if (!file.open(QIODevice::ReadOnly)) {QMessageBox::warning(this, "警告", "打开文件失败");return;}//获取文件大小qint64 size = file.size();//显示文件大小FilesizeLineEdit->setText(QString::number(size/1024.00, 'f', 2) + "KB");//这里代码计算了文件大小,单位为KB float型 保留两位小数file.close();
}MainWindow::~MainWindow()
{delete ui;
}
http://www.lryc.cn/news/429956.html

相关文章:

  • 了解 K-Means 聚类的工作原理(详细指南)
  • 预警先行,弯道哨兵让行车更安全
  • 预约咨询小程序搭建开发,uniapp前端,PHP语言开发
  • 极速文件预览!轻松部署 kkFileView 于 Docker 中!
  • 某验九宫格分类识别
  • 未来展望:观测云技术的发展与企业业务的融合
  • day6JS-DOM(文档对象模型)
  • MySQL列表分区分区表
  • qt打包程序方法(非常好用)
  • IP地址管理:优化网络布局与提升效率
  • 老古董Lisp实用主义入门教程(5):好奇先生用Lisp探索Lisp
  • linux文件——用户缓冲区——概念深度理解、IO模拟实现
  • Selenium模拟鼠标滚动页面:实现自动化测试中的页面交互
  • Eureka原理与实践:构建高效的微服务架构
  • OpenJDK 和 OracleJDK 的区别、下载方式
  • arthas源码刨析:arthas-core (2)
  • 【分享】格力手机色界G0245D 刷REC、root、 救砖、第三方rom教程和资源
  • 开学必备清单来啦!大学好物合集推荐!每一个都能帮你提升幸福感
  • 已解决:javax.xml.transform.TransformerFactoryConfigurationError 异常的正确解决方法,亲测有效!!!
  • 商品价格与优惠信息在API返回值中的位置
  • Oracle Index Partition索引分区的管理
  • 统信UOS系统访问windows共享目录
  • 单一职责原则与REST API设计:如何定义清晰的资源与职责
  • JAVA IO模型
  • 《C/C++实战专栏》介绍
  • 前端跨域2
  • electron仿微信,新建贴合窗口
  • uniapp微信小程序 分享功能
  • Java实现数据库数据到Excel的高效导出
  • python之matplotlib (8 极坐标)-圆与心