QListWidget使用,文件列表
源码点此
以上只是读取路径中的文件,将文件用列表方式显示出,打开文件等对文件操作可根据自己需求添加
#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使用,文件列表相关推荐
- Ubuntu 中的 dpkg 安装deb、删除deb、显示已安装包列表、解压deb文件、显示deb包内文件列表、配置deb软件包
1. dpkg 简介 dpkg 即 package manager for Debian ,是 Debian 和基于 Debian 的系统中一个主要的包管理工具,可以用来安装.构建.卸载.管理 deb ...
- php文件夹列表,php获取文件夹下面的文件列表和文件夹列表
function getDir($dir) { $dirArray[] = NULL; if (false != ($handle = opendir( $dir ))) { $i=0; while ...
- C# 文件操作(上传 下载 删除 文件列表...)
using System.IO; 1.文件上传 ---------- 如下要点: HTML部分: <form id="form1" runat=&q ...
- R语言list.files函数获取文件列表实战
R语言list.files函数获取文件列表实战 目录 R语言list.files函数获取文件列表实战 #仿真数据 #基本语法
- Python---读图(glob读取图片文件列表)
深度学习中常用的读图方式:glob用它可以查找符合特定规则的文件路径名.查找文件只用到三个匹配符:"*", "?", "[]":" ...
- SVN使用_获取某版本后改动的文件列表
本章将讲解如何通过svn命令获取某版本后改动的所有文件 一键操作,告别svn log的繁杂对比工作. 1:安装SVN命令行工具Subversion(不是TortoiseSVN) 下载Subversio ...
- 从指定文件夹里COPY指定的一批文件列表(TXT文件)
现实总是层出不穷的,像分形几何一样,一颗树永远在不断的相似变化 .... 现在的问题不是COPY,而是测试将一个包含近25万个文件的目录里COPY出上千个文件,放在另一个目录下作测试. 看看是不是因为 ...
- ESX虚拟机文件列表详解
http://jackiechen.blog.51cto.com/196075/210492 关闭状态时的文件列表: *-flat.vmdk:虚拟机的原始磁盘文件,包含整个虚拟机镜像. *.nvram ...
- Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办?
Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办? 参考文章: (1)Notepad++ 异常崩溃 未保存的new *文件列表没了怎么办? (2)https://www.cnblog ...
- 如何使用C或C ++获取目录中的文件列表?
如何从C或C ++代码内部确定目录中的文件列表? 我不允许执行ls命令并从程序中解析结果. #1楼 GNU手册FTW http://www.gnu.org/software/libc/manual/h ...
最新文章
- 【转载】解决Apache2+PHP上传文件大小限制的问题
- Android中的Service组件详解
- MySQL如何存储Emoji表情,UTF-8和UTF-8MB4字符编码有何区别
- Consensus Mechanisms — As Detailed and Concise as possible!
- php插入中文数据库乱码以及URL参数乱码
- 微信小程序图片上下有等值空白问题
- 李开复:有三个AI专家就能估值7亿的时代过去了
- 如何下载64位版本的eclipse 以及配置
- BeanUtils —— 操作JavaBean 工具 学习笔记
- jquery中animate()函数不能调用元素的display属性
- 硬盘保护卡(增霸卡)的工作原理
- java调用高拍仪获取图像_使用Java调用摄像头进行拍照源码
- 虚幻4引擎源码学习笔记(二):主循环LaunchEngineLoop
- Apache JMeter安装
- Androidstudio配置git及连接远程库全过程
- Android聊天室(客户端)
- 深度学习实战案例:电影评论二分类
- openssl命令生成根证书和使用根证书签名工作证书
- .\Objects\demo.axf: error: L6002U: Could not open file .\objects\core_cm3.o: No such file or directo
- 有关3D立体的一些市场信息