add search filter using QlineEdit line
This commit is contained in:
parent
bdf5e304e6
commit
5adde406d1
20
main.py
20
main.py
@ -5,6 +5,10 @@ class Widget(QtWidgets.QWidget):
|
||||
def __init__(self, *args, **kwargs):
|
||||
super(Widget, self).__init__(*args, **kwargs)
|
||||
|
||||
self.filter_edit = QtWidgets.QLineEdit()
|
||||
self.filter_edit.setPlaceholderText("Фильтр по именам")
|
||||
self.filter_edit.setClearButtonEnabled(True) # Добавляем кнопку очистки
|
||||
|
||||
self.treeview = QtWidgets.QTreeView()
|
||||
|
||||
# делаем домашнюю папку пользователя - начальной
|
||||
@ -21,15 +25,25 @@ class Widget(QtWidgets.QWidget):
|
||||
self.treeview.setRootIndex(self.dirModel.index(path))
|
||||
self.treeview.clicked.connect(self.on_clicked_item)
|
||||
|
||||
hlay = QtWidgets.QHBoxLayout(self)
|
||||
hlay.addWidget(self.treeview)
|
||||
# Устанавливаем размеры и расположение виджетов
|
||||
а = QtWidgets.QVBoxLayout(self)
|
||||
а.addWidget(self.filter_edit)
|
||||
а.addWidget(self.treeview)
|
||||
|
||||
# Подключаем событие изменения текста в QLineEdit к обновлению фильтра
|
||||
self.filter_edit.textChanged.connect(self.update_filter)
|
||||
|
||||
def update_filter(self):
|
||||
text = self.filter_edit.text()
|
||||
self.dirModel.setNameFilters([text]) # Устанавливаем фильтр по имени
|
||||
|
||||
# функция обработки кликов
|
||||
def on_clicked_item(self, index):
|
||||
path = self.dirModel.filePath(index)
|
||||
# print(f"Selected: {path}")
|
||||
|
||||
if __name__ == '__main__':
|
||||
app = QtWidgets.QApplication(sys.argv)
|
||||
w = Widget()
|
||||
w.setWindowTitle("Dir Tree View")
|
||||
w.show()
|
||||
sys.exit(app.exec_())
|
Loading…
Reference in New Issue
Block a user