Отображение файловой системы в QTreeWidget
Приведенная выше ссылка состоит в том, чтобы поместить файловую систему в QtreeWidget, и мои потребности и идеи, пересекающие QTreewidget, сохраняют путь к его конечным узлам.
Изначально я хотел реализовать его с обходом предзаказа, и он не удался.
Я также подумал о плохой идее. Поиск конечного узла и его родительского узла может быть очень медленным.
Я хочу знать, есть ли хорошая идея или пример.
from PyQt5 import QtWidgets
from code.client.pdf_preprocessing_logic.ui.demo import Ui_Form
class Demo(QtWidgets.QWidget, Ui_Form):
def __init__(self, parent=None, *args, **kwargs):
super().__init__(parent, *args, **kwargs)
self.setupUi(self)
self.text_list = []
self.on_modify_directory(self.item_0)
def on_modify_directory(self, node):
pass
def main():
import sys
app = QtWidgets.QApplication(sys.argv)
gui = Demo()
gui.show()
sys.exit(app.exec_())
if __name__ == '__main__':
main()
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'demo.ui'
#
# Created by: PyQt5 UI code generator 5.13.0
#
# WARNING! All changes made in this file will be lost!
from PyQt5 import QtCore, QtGui, QtWidgets
class Ui_Form(object):
def setupUi(self, Form):
Form.setObjectName("Form")
Form.resize(424, 379)
self.treeWidget = QtWidgets.QTreeWidget(Form)
self.treeWidget.setGeometry(QtCore.QRect(50, 60, 301, 251))
self.treeWidget.setObjectName("treeWidget")
self.item_0 = QtWidgets.QTreeWidgetItem(self.treeWidget)
item_1 = QtWidgets.QTreeWidgetItem(self.item_0)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_3 = QtWidgets.QTreeWidgetItem(item_2)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_1 = QtWidgets.QTreeWidgetItem(self.item_0)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
item_2 = QtWidgets.QTreeWidgetItem(item_1)
self.retranslateUi(Form)
QtCore.QMetaObject.connectSlotsByName(Form)
def retranslateUi(self, Form):
_translate = QtCore.QCoreApplication.translate
Form.setWindowTitle(_translate("Form", "Form"))
self.treeWidget.headerItem().setText(0, _translate("Form", "a1"))
self.treeWidget.headerItem().setText(1, _translate("Form", "b1"))
__sortingEnabled = self.treeWidget.isSortingEnabled()
self.treeWidget.setSortingEnabled(False)
self.treeWidget.topLevelItem(0).setText(0, _translate("Form", "root"))
self.treeWidget.topLevelItem(0).child(0).setText(0, _translate("Form", "a2"))
self.treeWidget.topLevelItem(0).child(0).child(0).setText(0, _translate("Form", "a21"))
self.treeWidget.topLevelItem(0).child(0).child(0).child(0).setText(0, _translate("Form", "a211"))
self.treeWidget.topLevelItem(0).child(0).child(1).setText(0, _translate("Form", "a22"))
self.treeWidget.topLevelItem(0).child(1).setText(0, _translate("Form", "a3"))
self.treeWidget.topLevelItem(0).child(1).child(0).setText(0, _translate("Form", "a31"))
self.treeWidget.topLevelItem(0).child(1).child(1).setText(0, _translate("Form", "a32"))
self.treeWidget.setSortingEnabled(__sortingEnabled)
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
Form = QtWidgets.QWidget()
ui = Ui_Form()
ui.setupUi(Form)
Form.show()
sys.exit(app.exec_())