zoukankan      html  css  js  c++  java
  • 小工具之文件浏览器

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

     

  • 相关阅读:
    .net core上传
    C#/.NET整数的三种强制类型转换(int)、Convert.ToInt32()、int.Parse()的区别
    14、Silverlight 滤镜到 UWP 滤镜的移植(二)
    13、在 uwp应用中,给图片添加高斯模糊滤镜效果(一)
    1、揭秘通用平台的 HttpClient (译)
    12、uwp 开发的零碎总结
    11、使用 WinAppDeployCmd 部署appx 包到 Windows10 Mobile上(更新)
    10、Windows10 上,在窗口左侧向右滑动打开 SplitView 的 Pane面板
    09、win32 转换为 store app
    08、通过自定义依赖属性,用 StateTrigger 修改全局主题样式
  • 原文地址:https://www.cnblogs.com/superdo/p/4643904.html
Copyright © 2011-2022 走看看