小工具之文件浏览器

这是用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

 

原文地址:https://www.cnblogs.com/superdo/p/4643904.html