【QT 网络云盘客户端】——实现文件属性窗口

目录

文件属性对话框

设置字体样式

 获取文件的信息

显示文件属性对话框

当我们点击文件中的属性,则会弹出一个属性对话框: 

 

实现过程:

0.设置 属性 菜单项的槽函数

1.鼠获取鼠标选中的QListWidgetItem,它包含 图标文件名

2.根据文件名 找到对应的FileInfo对象

ps:FileInfo是文件信息对象,在显示文件列表的过程中,就已经将每个文件的 文件信息保存到 QList<FileInfo*> m_fileInfoList

3.将FileInfo对象 中的信息设置 进文件属性对话框中。 

文件属性对话框

 实现过程:

自定义一个filePropertyiInfoDialog类型,继承QDialog类型, 其中包括

filePropertyiInfoDialog.h, filePropertyiInfoDialog.cpp ,filePropertyiInfoDialog.ui文件

filePropertyiInfoDialog.ui界面设计:

 

设置字体样式

 filePropertyiInfoDialog.cpp,在构造函数中设置字体的颜色:

filePropertyiInfoDialog::filePropertyiInfoDialog(QWidget *parent) :QDialog(parent),ui(new Ui::filePropertyiInfoDialog)
{ui->setupUi(this);QString style1 = QString("color: rgb(11, 11, 11);font: 75 14pt \"Agency FB\";");QString style2 = QString("font: 14pt \"隶书\";color: rgb(255, 156, 16);");this->setWindowTitle("文件属性");ui->lbl_fileName->setStyleSheet(style1);ui->lbl_fileSize->setStyleSheet(style1);ui->lbl_download->setStyleSheet(style1);ui->lbl_shareStatus->setStyleSheet(style1);ui->lbl_uploadTime->setStyleSheet(style1);ui->lbl_uploadUser->setStyleSheet(style1);ui->val_fileName->setStyleSheet(style2);ui->val_fileSize->setStyleSheet(style2);ui->val_download->setStyleSheet(style2);ui->val_shareStatus->setStyleSheet(style2);ui->val_uploadTime->setStyleSheet(style2);ui->val_uploadUser->setStyleSheet(style2);}

 获取文件的信息

    //设置属性菜单项的槽函数connect(m_propertyAction,&QAction::triggered,this,[=]{dealfile(DealFile::Show);});void myfile::dealfile(DealFile cmd)
{//获取鼠标选中的QListWidgetItemQListWidgetItem* item=ui->listWidget->currentItem();for(int i=0;i<m_fileInfoList.length();i++){//根据文件名找到对应的文件信息FileInfo* fileInfo=m_fileInfoList[i];if(fileInfo->fileName==item->text()){if(cmd==DealFile::Show){//显示文件属性showFileProperty(fileInfo);}}}
}

显示文件属性对话框


//fileinfo.h文件
struct FileInfo
{QString user;           //用户名QString md5;            //md5QString createTime;     //上传时间QString fileName;       //文件名称int shareStatus;        //共享状态, 0为没有共享, 1为共享int pv;                 //文件下载量,下载一次加1QString url;            //文件urlint size;               //文件大小QString type;           //文件类型
};//filePropertyiInfoDialog.cpp文件
//显示filePropertyiInfoDialog文件属性对话框
void myfile::showFileProperty(FileInfo *fileInfo)
{//弹出对话框,显示文件属性filePropertyiInfoDialog* dialog=new filePropertyiInfoDialog();dialog->setFileInfo(fileInfo);dialog->show();
}//将fileInfo的信息设置到filePropertyiInfoDialog中
void filePropertyiInfoDialog::setFileInfo(FileInfo *fileInfo)
{//设置文件名称ui->val_fileName->setText(fileInfo->fileName);int size=fileInfo->size;QString fileSize;//设置文件大小if(size<1024){fileSize=QString("%1字节").arg(QString::number(size));}else if(size>=1024){fileSize=QString("%1 kb").arg(QString::number(size/1024));}else if(size>=1024*1024){fileSize=QString("%1 kb").arg(QString::number(size/(1024*1024)));}ui->val_fileSize->setText(fileSize);//设置文件的urlui->val_download->setText(fileInfo->url);//设置文件的分享状态ui->val_shareStatus->setText(QString::number(fileInfo->shareStatus));//设置文件的上传时间ui->val_uploadTime->setText(fileInfo->createTime);//设置文件的使用者ui->val_uploadUser->setText(fileInfo->user);
}

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

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

相关文章

POLARDB IMCI 白皮书 云原生HTAP 数据库系统 一 数据压缩和打包处理与数据更新

开头还是介绍一下群&#xff0c;如果感兴趣polardb ,mongodb ,mysql ,postgresql ,redis 等有问题&#xff0c;有需求都可以加群群内有各大数据库行业大咖&#xff0c;CTO&#xff0c;可以解决你的问题。加群请联系 liuaustin3 &#xff0c;在新加的朋友会分到2群&#xff08;共…

十一、数据结构——树(Tree)的基本概念

数据结构之树(Tree) 目录 树的基本概念树的分类树的基本操作树的应用结语 树的基本概念 树是一种重要的数据结构&#xff0c;它在计算机科学中被广泛应用。树的特点是以分层的方式存储数据&#xff0c;具有层次结构&#xff0c;类似于现实生活中的树状结构。在树中&#xff…

python与深度学习(十):CNN和cifar10二

目录 1. 说明2. cifar10的CNN模型测试2.1 导入相关库2.2 加载数据和模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章训练的模型进行测试。首…

JPA之Hibernate

JPA 定义&#xff1a;是 JavaEE 中一组用于持久化数据的 API&#xff0c;它提供了一种标准的 ORM 规范&#xff0c;用于 Java 对象映射到数据库中。 JPA 的开发是为了简化企业级应用程序的开发&#xff0c;降低应用程序与数据库之间的耦合度&#xff0c;并提高应用程序的可维护…

【Vuvuzela 声音去噪算法】基于流行的频谱减法技术的声音去噪算法研究(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

WEB:unseping

背景知识 php序列化和反序列化 命令执行绕过方式 题目 进行代码审计 可知为反序列化 整体是创建case类&#xff0c;可接受post传来的ctf值 _consturuct函数,是在函数调动前启用&#xff0c;构造了$method和$args两个变量。 _dexstruct函数在变量摧毁的时使用&#xff0c;所…

【嵌入式学习笔记】嵌入式基础10——STM32时钟配置

1.认识时钟树 简单来说&#xff0c;时钟是具有周期性的脉冲信号&#xff0c;最常用的是占空比50%的方波 1.1.F1的时钟树 1.2.F4的时钟树(407为例) 1.3.F7的时钟树 1.4.H7的时钟树 2.配置系统时钟(F1为例) 2.1.系统时钟配置步骤 配置HSE VALUE&#xff1a;告诉HAL库外部晶振…

2021 年高教社杯全国大学生数学建模竞赛 E 题 中药材的鉴别 第一题

目录 1.数据预处理 1.1 数据基本信息探索 1.2 数据可视化 1.3 异常值处理 2. 数据特征值提取 2.1 数据标准化 2.2 PCA提取特征值 3. 数据聚类鉴别药材种类 3.1 肘部图确定K值 3.2 轮廓系数图确定K值 3.3 数据聚类 3.4 聚类结果可视化 4. 研究不同种类药材…

vue-element-plus-admin框架的tag上下文切换bug

问题 首先贴上该框架的链接&#xff1a;https://github.com/kailong321200875/vue-element-plus-admin 在对路由进行部分修改后&#xff0c;网站多次切换tag时&#xff0c;控制台会出现报错&#xff1a;Cannot read properties of undefined (reading offsetLeft)。 我在框架…

SQL基础培训24-存储过程详解

1.存储过程的概念与语法 1.1.概念 存储过程(Stored Procedure):已预编译为一个可执行过程的一个或多个SQL语句的集合。 1.2.语法 创建测试表: create table student <

jdk11环境 提示“因为 accessExternalDTD 属性设置的限制导致不允许 ‘http‘ 访问“bug

在运行mybatis源码的时候&#xff0c;提示一下错误&#xff1a; Exception in thread "main" org.apache.ibatis.exceptions.PersistenceException: ### Error building SqlSession. ### Cause: org.apache.ibatis.builder.BuilderException: Error creating docum…

CentOS下 Docker、Docker Compose 的安装教程

Docker 是一个开源的应用容器引擎&#xff0c;让开发者可以打包他们的应用以及依赖包到一个可移植的容器中&#xff0c;然后发布到任何流行的 Linux 机器上&#xff0c;也可以实现虚拟化。容器是完全使用沙箱机制&#xff0c;相互之间不会有任何接口。 Docker Compose是用于定义…

C语言基础入门详解一

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂&#xff0c;风趣幽默"&#xff0c;感觉非常有意思,忍不住分享一下给大家。 &#x1f449;点击跳转到教程 前言&#xff1a; 初识C语言 //#include 相当于java的import,stdio全称&#xff1a;st…

PostMan+Jmeter+QTP工具介绍及安装

目录 一、PostMan介绍​编辑 二、下载安装 三、Postman与Jmeter的区别 一、开发语言区别&#xff1a; 二、使用范围区别&#xff1a; 三、使用区别&#xff1a; 四、Jmeter安装 附一个详细的Jmeter按照新手使用教程&#xff0c;感谢作者&#xff0c;亲测有效。 五、Jme…

微信读书:长期投资(阅读摘录)

微信读书&#xff1a;长期投资&#xff08;阅读摘录&#xff09; 所有投资高手的时间精力都投向了这三大块&#xff1a;行动、思考、读书。 我们把耐心发挥到了极致&#xff0c;这正是价值投资的关键特征之一。 通常在牛市中想要跑赢大盘&#xff0c;难度非常大。 实际上&am…

深度剖析C++ 异常机制

传统排错 我们早在 C 程序里面传统的错误处理手段有&#xff1a; 终止程序&#xff0c;如 assert&#xff1b;缺陷是用户难以接受&#xff0c;说白了就是一种及其粗暴的手法&#xff0c;比如发生内存错误&#xff0c;除0错误时就会终止程序。 返回错误码。缺陷是需要我们自己…

java接口实现

文章目录 java接口实现接口中成员组成默认方法静态方法私有接口&#xff08;保证自己的JDK版本大于等于9版本&#xff09;类和接口的关系抽象类与接口之间的区别 java接口实现 1.接口关键字 interface2.接口不能实例化3.类与接口之间的关系是实现关系&#xff0c;通过 impleme…

职场中是否存在公平

不管是人还是动物&#xff0c;只要有思考的物体&#xff0c;不可避免就会面临公平的问题。 好比一头雄狮&#xff0c;它也纳闷&#xff0c;为啥老子吼缺氧的四嗓子都换不回母狮的回眸&#xff0c;而另一头搓B&#xff0c;只哼哼两声&#xff0c;母狮就过去了&#xff0c;尼玛真…

C++11类模板

类模板是用来生成类的蓝图&#xff0c;与函数模板的不同之处是&#xff0c;编译器不能为类模板推断模板参数类型。 所以我们在使用类的时候要带上<>并且指定类型如下 vector<int> v; // 需要带上<int> 哦定义类模板 如下&#xff0c;和函数模板差不多都是…

【Docker consul的容器服务更新与发现】

文章目录 一、Consul 的简介&#xff08;1&#xff09;什么是服务注册与发现&#xff08;2&#xff09;什么是consul 二、consul 部署1、consul服务器1. 建立 Consul 服务2. 查看集群信息3. 通过 http api 获取集群信息 2、registrator服务器1. 安装 Gliderlabs/Registrator2. …