• 小工具之文件浏览器


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

     

  • 相关阅读:
    sshpass连接主机以及执行命令
    elk集群配置并破解x-pack
    socket实现简单通信会话
    docker容器跨宿主机通信
    docker运行wordpress
    centos7 利用docker运行nginx项目
    docker容器基础命令
    docker镜像基础命令
    vue中使用延时加载
    less
  • 原文地址:https://www.cnblogs.com/superdo/p/4643904.html
Copyright © 2020-2023  润新知