源码点此

以上只是读取路径中的文件,将文件用列表方式显示出,打开文件等对文件操作可根据自己需求添加

#include "fileopendlg.h"
#include <QPainter>
#include <QMessageBox>FileOpenDlg::FileOpenDlg(QWidget *parent) :QWidget(parent)
{DisW = 640;DisH = 480;this->setFixedSize(DisW, DisH);SetBk();this->setWindowTitle("文件打开(File Open)");this->move(0,0);m_textFont.setPixelSize(20);m_textFont.setFamily("wqy-zenhei");m_textFont.setWeight(1);m_ListWidget = new QListWidget(this);m_ListWidget->move(10,10);m_ListWidget->setFont(m_textFont);m_ListWidget->setFixedSize(DisW-20,DisH-60);m_ListWidget->setViewMode(QListView::ListMode);m_ListWidget->setStyleSheet("background-color: rgba(0, 0, 0, 0);");connect(m_ListWidget,SIGNAL(itemDoubleClicked(QListWidgetItem*)),this,SLOT(doubleclicked(QListWidgetItem*)));m_textFont.setPixelSize(25);m_openbt = new QPushButton(this);m_openbt->setFixedSize(100,40);m_openbt->move((DisW-100)/2,DisH-50);m_openbt->setFont(m_textFont);m_openbt->setText("打开");connect(m_openbt,SIGNAL(clicked()),this,SLOT(openbtn()));
}FileOpenDlg::~FileOpenDlg()
{}void FileOpenDlg::openbtn()
{OpenFileName;QFileInfoList subFileList = m_Dir.entryInfoList(QDir::Files | QDir::CaseSensitive);if(subFileList.count()>0){qDebug()<<subFileList[m_ListWidget->currentRow()].fileName();}update();
}void FileOpenDlg::updateFileDir()
{m_Dir = "./";QFileInfoList subFileList = m_Dir.entryInfoList(QDir::Files | QDir::CaseSensitive);QString str;for(int i=0; i<subFileList.size(); i++){QListWidgetItem* item = new QListWidgetItem;str = subFileList[i].fileName();item->setText(str.left(50)+"    "+subFileList[i].filePath());m_ListWidget->addItem(item);}if(subFileList.count()>0){m_ListWidget->setCurrentRow(0);
//        qDebug()<<subFileList.size()<<m_ListWidget->currentRow();}
}/*列表项双击操作*/
void FileOpenDlg::doubleclicked(QListWidgetItem* item)
{QMessageBox::information(this,"双击消息","双击"+item->text());}void FileOpenDlg::showEvent(QShowEvent *)
{updateFileDir();
}void FileOpenDlg::closeEvent(QCloseEvent *)
{}void FileOpenDlg::SetBk()
{int Wid, Hig;Wid = this->width();Hig = this->height();backgroundPix = QPixmap(Wid,Hig);QPainter Rulepainter(&backgroundPix);Rulepainter.setRenderHint(QPainter::Antialiasing,true);Rulepainter.translate(Wid/2,Hig/2);QRadialGradient Radial(0,0,Wid/2,0,0);Radial.setColorAt(0, QColor(255,255,255));Radial.setColorAt(1, QColor(135,206,255));Radial.setSpread(QGradient::ReflectSpread);Rulepainter.setPen(QPen(QColor(0, 160, 230), 1));Rulepainter.setBrush(Radial);Rulepainter.drawRect(QRect(-Wid/2, -Hig/2, Wid, Hig));update();
}void FileOpenDlg::paintEvent(QPaintEvent *)
{QPainter m_painter(this);m_painter.drawPixmap(0,0, backgroundPix);
}
#ifndef FILEOPENDLG_H
#define FILEOPENDLG_H#include <QWidget>
#include <QListWidget>
#include <QDir>
#include <QString>
#include <QDebug>
#include <QPushButton>class CHSApp;class FileOpenDlg : public QWidget
{Q_OBJECT
public:explicit FileOpenDlg(QWidget *parent = 0);~FileOpenDlg();CHSApp *m_App;void paintEvent(QPaintEvent *);void showEvent(QShowEvent *);void closeEvent(QCloseEvent *);void updateFileDir(void);QFont   m_textFont;int DisW;int DisH;QListWidget *m_ListWidget;QPushButton *m_openbt;QDir m_Dir;QString OpenFileName;QPixmap backgroundPix;void SetBk(void);
signals:public slots:void openbtn();void doubleclicked(QListWidgetItem* item);
};#endif // FILEOPENDLG_H

QListWidget使用,文件列表相关推荐

  1. Ubuntu 中的 dpkg 安装deb、删除deb、显示已安装包列表、解压deb文件、显示deb包内文件列表、配置deb软件包

    1. dpkg 简介 dpkg 即 package manager for Debian ,是 Debian 和基于 Debian 的系统中一个主要的包管理工具,可以用来安装.构建.卸载.管理 deb ...

  2. php文件夹列表,php获取文件夹下面的文件列表和文件夹列表

    function getDir($dir) { $dirArray[] = NULL; if (false != ($handle = opendir( $dir ))) { $i=0; while ...

  3. C# 文件操作(上传 下载 删除 文件列表...)

    using System.IO;      1.文件上传   ----------   如下要点:   HTML部分:   <form id="form1" runat=&q ...

  4. R语言list.files函数获取文件列表实战

    R语言list.files函数获取文件列表实战 目录 R语言list.files函数获取文件列表实战 #仿真数据 #基本语法

  5. Python---读图(glob读取图片文件列表)

    深度学习中常用的读图方式:glob用它可以查找符合特定规则的文件路径名.查找文件只用到三个匹配符:"*", "?", "[]":" ...

  6. SVN使用_获取某版本后改动的文件列表

    本章将讲解如何通过svn命令获取某版本后改动的所有文件 一键操作,告别svn log的繁杂对比工作. 1:安装SVN命令行工具Subversion(不是TortoiseSVN) 下载Subversio ...

  7. 从指定文件夹里COPY指定的一批文件列表(TXT文件)

    现实总是层出不穷的,像分形几何一样,一颗树永远在不断的相似变化 .... 现在的问题不是COPY,而是测试将一个包含近25万个文件的目录里COPY出上千个文件,放在另一个目录下作测试. 看看是不是因为 ...

  8. ESX虚拟机文件列表详解

    http://jackiechen.blog.51cto.com/196075/210492 关闭状态时的文件列表: *-flat.vmdk:虚拟机的原始磁盘文件,包含整个虚拟机镜像. *.nvram ...

  9. Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办?

    Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办? 参考文章: (1)Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办? (2)https://www.cnblog ...

  10. 如何使用C或C ++获取目录中的文件列表?

    如何从C或C ++代码内部确定目录中的文件列表? 我不允许执行ls命令并从程序中解析结果. #1楼 GNU手册FTW http://www.gnu.org/software/libc/manual/h ...

最新文章

  1. 【转载】解决Apache2+PHP上传文件大小限制的问题
  2. Android中的Service组件详解
  3. MySQL如何存储Emoji表情,UTF-8和UTF-8MB4字符编码有何区别
  4. Consensus Mechanisms — As Detailed and Concise as possible!
  5. php插入中文数据库乱码以及URL参数乱码
  6. 微信小程序图片上下有等值空白问题
  7. 李开复:有三个AI专家就能估值7亿的时代过去了
  8. 如何下载64位版本的eclipse 以及配置
  9. BeanUtils —— 操作JavaBean 工具 学习笔记
  10. jquery中animate()函数不能调用元素的display属性
  11. 硬盘保护卡(增霸卡)的工作原理
  12. java调用高拍仪获取图像_使用Java调用摄像头进行拍照源码
  13. 虚幻4引擎源码学习笔记(二):主循环LaunchEngineLoop
  14. Apache JMeter安装
  15. Androidstudio配置git及连接远程库全过程
  16. Android聊天室(客户端)
  17. 深度学习实战案例:电影评论二分类
  18. openssl命令生成根证书和使用根证书签名工作证书
  19. .\Objects\demo.axf: error: L6002U: Could not open file .\objects\core_cm3.o: No such file or directo
  20. 有关3D立体的一些市场信息

热门文章

  1. Win7及以上笔记本设置共享WiFi热点
  2. 一款很小巧的桌面窗口隐藏工具
  3. linux 存储映射lun 给_LINUX系统下添加映射存储LUN
  4. 基础地图-在线地图-天地图(无标注)
  5. element UI 模态层dialog自定义大小
  6. Veritas调研显示:全球企业普遍担心由于不符合新欧盟数据条例导致业务受损
  7. C语言中%*s,%*c (还有%*.*s)
  8. WINCC 报警语音播报
  9. Java 实现分段截取视频 生成gif图 使用ffmpeg操作
  10. UIKit 力学教程