小工具之文件浏览器

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

 

 

你可能感兴趣的:(浏览器)