pyqt中的目錄QFileSystemModel 內容用 QTreeView 顯示
前兩天做程式碼的時候自己實現了一個目錄展示的效果,雖然有較強的擴充套件性,但是官方可能還是要完善一些。
經過幾個小時的摸索,大概效果如下:
import sys, os
from PyQt5.QtWidgets import QApplication, QFileSystemModel, QTreeView, QWidget, QVBoxLayout, QDirModel
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *
from PyQt5.QtGui import QIcon
class App(QWidget):
def __init__(self):
super().__init__()
self.title = 'PyQt5 file system view - pythonspot.com'
self.left = 10
self.top = 10
self.width = 640
self.height = 480
self.initUI()
def tree_cilcked(self, Qmodelidx):
print(self.model.filePath(Qmodelidx))
print(self.model.fileName(Qmodelidx))
print(self.model.fileInfo(Qmodelidx))
def initUI(self):
self.setWindowTitle(self.title)
self.setGeometry(self.left, self.top, self.width, self.height)
# 這裡得到目錄結構
self.model = QFileSystemModel()
self.model.setRootPath(QDir.currentPath())
# 這裡過濾,只顯示 py 檔案
mf = self.model.setNameFilters(['*.py'])
self.model.setNameFilterDisables(False)
# 這裡做展示
self.tree = QTreeView()
self.tree.setModel(self.model)
self.tree.setRootIndex(self.model.index(QDir.currentPath()))
self.tree.doubleClicked.connect(self.tree_cilcked)
# 這裡隱藏了目錄資訊展示
for i in [1,2,3]:
self.tree.setColumnHidden(i, True)
# 縮排
self.tree.setIndentation(10)
self.tree.setWindowTitle("Dir View")
self.tree.resize(640, 480)
windowLayout = QVBoxLayout()
windowLayout.addWidget(self.tree)
self.setLayout(windowLayout)
self.show()
if __name__ == '__main__':
app = QApplication(sys.argv)
ex = App()
效果:
相關文章
- chm 檔案開啟只顯示目錄,不顯示內容
- PyQT5之QTreeViewQTView
- php遍歷指定目錄中的內容2PHP
- PHP獲取目錄中的全部內容RecursiveDirectoryIteratorPHP
- Centos7 中查詢檔案、目錄、內容CentOS
- pyqt5顯示照片QT
- Pycharm中,pyqt5.11.1的Qt assistant顯示PyCharmQT
- hadoop中顯示每個目錄大小(按照GN.MB.KB格式顯示)Hadoop
- QT tableWidget 內容居中顯示QT
- 巧用網頁顯示硬碟內容網頁硬碟
- Linux用樹形結構顯示目錄結構Linux
- 自定義UILabel內容顯示內邊距UI
- RedHat下顯示彩色目錄列表 (轉)Redhat
- CSS滑鼠懸停下拉顯示內容CSS
- PbootCMS內容列表只顯示推薦/置頂/頭條內容boot
- dir 顯示目錄檔案和子目錄列表(轉)
- 帝國CMS網站以顯示“Hello,World”為例子,目錄名用“helloworld”,目錄格式為網站
- Qt中關於QLabel等其顯示內容的縮放與對齊,動態圖的顯示QT
- ext2目錄檔案的內容驗證
- android的sd卡上建立目錄不顯示AndroidSD卡
- DataView:利用RowDataBound來轉換要顯示的內容View
- MVP for Android: 如何組織顯示層的內容MVPAndroid
- Oracle如何更改show parameter顯示內容的列的格式Oracle
- SAP Fiori Elements 應用裡的 Title 顯示的內容是從哪裡來的
- VIM安裝NERDTree外掛顯示工程目錄
- PHP顯示文章內容點選數加一PHP
- ccat – 使用語法突出顯示輸出內容
- JavaScript操作下拉框動態顯示內容JavaScript
- CIPHER命令用於顯示或更改NTFS分割槽上目錄[檔案]的加密加密
- Android上的MVP:如何組織顯示層的內容AndroidMVP
- u盤內容被隱藏win10怎麼顯示_win10 u盤內容不顯示如何恢復Win10
- kettle 實用小功能(二),讀取一個目錄下文字檔案的內容
- 取得的Outlook目錄並在TTreeView裡顯示出來 (轉)View
- 在linux下顯示中文目錄和檔名Linux
- Typora 使用1之-----簡介、顯示大綱目錄
- linux 列目錄時顯示中文檔名 (轉)Linux
- 微力開啟頁面空白,不顯示目錄
- java使用sshd 實現sftp 自定義顯示目錄JavaFTP