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獲取目錄中的全部內容RecursiveDirectoryIteratorPHP
- Pycharm中,pyqt5.11.1的Qt assistant顯示PyCharmQT
- QT tableWidget 內容居中顯示QT
- Centos7 中查詢檔案、目錄、內容CentOS
- pyqt5顯示照片QT
- CSS滑鼠懸停下拉顯示內容CSS
- 帝國CMS網站以顯示“Hello,World”為例子,目錄名用“helloworld”,目錄格式為網站
- PbootCMS內容列表只顯示推薦/置頂/頭條內容boot
- vscode如何設定目錄分級顯示VSCode
- CIPHER命令用於顯示或更改NTFS分割槽上目錄[檔案]的加密加密
- 在linux下顯示中文目錄和檔名Linux
- SAP Fiori Elements 應用裡的 Title 顯示的內容是從哪裡來的
- ccat – 使用語法突出顯示輸出內容
- PHP顯示文章內容點選數加一PHP
- u盤內容被隱藏win10怎麼顯示_win10 u盤內容不顯示如何恢復Win10
- Typora 使用1之-----簡介、顯示大綱目錄
- java使用sshd 實現sftp 自定義顯示目錄JavaFTP
- 微力開啟頁面空白,不顯示目錄
- 複習Linux如何顯示檔案指定行數的內容Linux
- Flex佈局-垂直居中並換行顯示內容Flex
- Layer.js實現表格溢位內容省略號顯示,懸停顯示全部JS
- Python PyQt顯示臨時狀態訊息PythonQT
- IDEA使用:IDEA 專案匯入目錄顯示問題Idea
- js控制文字內容過多時候點選展開方式顯示全部內容demoJS
- Linux系統如何顯示檔案的最後幾行內容?Linux
- Hub:研究顯示觀眾更喜歡Netflix的原創內容
- Flutter 不顯示任何內容,返回哪個Widget 合適?Flutter
- WIN10動態磁貼不顯示內容怎麼設定 WIN10設定動態磁貼不顯示內容方法Win10
- 帝國cms把文章內容都存放到根目錄方法
- PyQT5之PyQtGraph實時資料顯示QT
- [求助] 如何把 allure 的 index.html 所顯示的內容,展示在 jenkins 傳送的 Email 中?IndexHTMLJenkinsAI
- apache 經常無法訪問目錄列表,顯示 403 forbiddenApacheORB
- Vue日曆的編寫,可顯示周和月的模式(其中可以自定義日曆裡內容的顯示)Vue模式
- css文字超出div隱藏剩下內容並顯示省略號CSS
- element-ui select input多選內容過多,+1顯示UI
- win10系統下顯示資料夾樹形目錄的方法Win10