目录
文件属性对话框
设置字体样式
获取文件的信息
显示文件属性对话框
当我们点击文件中的属性,则会弹出一个属性对话框:
实现过程:
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);
}