这是用python写的一款小工具,功能暂时比较单一,就是用来浏览各个盘的目录与文件,暂时只支持双击目录。界面也比较简单,更多的功能将在以后的版本补充,也会在以后的博客上登出。
不多说,直接上代码吧。
# -*- coding: utf-8 -*- """ Module implementing App. """ from PyQt4.QtGui import QMainWindow,QFileDialog,QListWidgetItem,QListWidget from PyQt4.QtCore import pyqtSignature from v.Ui_App import Ui_MainWindow from PyQt4.QtCore import SIGNAL,SLOT import os import subprocess class App(QMainWindow, Ui_MainWindow): """ Class documentation goes here. """ def __init__(self, parent = None): """ Constructor """ QMainWindow.__init__(self, parent) self.setupUi(self) global item list = [] self.it = 'C:/' item = os.listdir('C:/') self.lineEdit.setText('C:/') for i in item: list.append(i.decode('gbk')) self.listWidget.addItems(list) @pyqtSignature("QModelIndex") def on_listWidget_doubleClicked(self, index): """ #双击项目 """ current = str(self.listWidget.currentItem().text()).decode('utf-8') if os.path.isdir(self.it + current): self.it = self.it + current + '/' self.lineEdit.setText(self.it) self.listWidget.clear() self.listWidget.addItems(os.listdir(self.it)) def click(self,position): self.it = position list = [] item = os.listdir(position) self.lineEdit.setText(self.it) self.listWidget.clear() for i in item: print i.decode('gbk') list.append(i.decode('gbk')) self.listWidget.addItems(list) @pyqtSignature("") def on_btn_d_clicked(self): """ #点击d盘 """ self.click('D:/') @pyqtSignature("") def on_btn_g_clicked(self): """ #点击g盘 """ self.click('G:/') @pyqtSignature("") def on_btn_f_clicked(self): """ #点击f盘 """ self.click('F:/') @pyqtSignature("") def on_btn_e_clicked(self): """ #点击e盘 """ self.click('E:/') @pyqtSignature("") def on_btn_c_clicked(self): """ #点击c盘 """ self.click('C:/') @pyqtSignature("") def on_btn_back_clicked(self): """ Slot documentation goes here. """ if self.it == 'C:/' or self.it == 'D:/' or self.it == 'E:/' or self.it == 'F:/' or self.it == 'G:/': return last = self.it.rfind('/') new = self.it[:last] delet = new.rfind('/') self.it = self.it[:delet+1] self.lineEdit.setText(self.it) self.listWidget.clear() self.listWidget.addItems(os.listdir(self.it))
self.listWidget.clear()
self.listWidget.addItems(os.listdir(self.it))
每次点击之后先清除原本列表的内容,然后在显示新的列表
current = str(self.listWidget.currentItem().text()).decode('utf-8')
转换utf-8,防止出现中文乱码
last = self.it.rfind('/') new = self.it[:last]
查找出最后一个'/'的位置,然后取其前面的内容
运行后的界面
本站文章为 宝宝巴士 SD.Team 原创,转载务必在明显处注明:(作者官方网站: 宝宝巴士 )
转载自【宝宝巴士SuperDo团队】 原文链接: http://www.cnblogs.com/superdo/p/4643904.html