first commit

This commit is contained in:
Yesen 2023-10-18 04:16:52 +03:00
commit bdf5e304e6
2 changed files with 67 additions and 0 deletions

32
README.md Executable file
View File

@ -0,0 +1,32 @@
# What is this?
Test program (TreeView - File Manager) from Astra Linux
# Tasks
В продолжении телефонного разговора направляю Вам тестовое задание, жду от Вас ответа 18.10 во второй половине дня.
### Установить Astra Linux (2.12 или 1.7) на виртуальную машину
Yes
### Обновиться до последней версии
- посмотрела через сайт версии на 2.12 https://wiki.astralinux.ru/pages/viewpage.action?pageId=158605543
- посмотрела версию астры через графику
- актуальная
### Необходимо реализовать графическое приложение, которое будет отображать дерево файловой системы
#### Сделать стартовой директорией домашнюю директорию текущего пользователя. То есть того пользователя что запускает утилиту
Yes
#### Отображать файлы, папки, в том числе и скрытые
Yes
#### Добавить QLineEdit виджет, который использовать для фильтрации по имёнам файлов и папок
-
#### Пришлите готовый код и скриншот. Желательно ссылку на репозиторий GitHub/GitLab/BitBucket
This
# Docs
[QFileSystemModel Class](https://doc.qt.io/qt-5/qfilesystemmodel.html)
[QTreeView](https://doc.qt.io/qt-5/qtreeview.html)
[Dir View](https://doc.qt.io/qt-5/qtwidgets-itemviews-dirview-example.html)

35
main.py Executable file
View File

@ -0,0 +1,35 @@
import sys
from PyQt5 import QtWidgets, QtCore
class Widget(QtWidgets.QWidget):
def __init__(self, *args, **kwargs):
super(Widget, self).__init__(*args, **kwargs)
self.treeview = QtWidgets.QTreeView()
# делаем домашнюю папку пользователя - начальной
path = QtCore.QDir.homePath()
# dirModel
self.dirModel = QtWidgets.QFileSystemModel()
self.dirModel.setRootPath(path)
# QtCore.QDir.AllEntries - отображение всех файлов
# QtCore.QDir.NoDotAndDotDot - нет точки и двух точек
# QtCore.QDir.Hidden - скрытые файлы
self.dirModel.setFilter(QtCore.QDir.AllEntries | QtCore.QDir.NoDotAndDotDot | QtCore.QDir.Hidden)
self.treeview.setModel(self.dirModel)
self.treeview.setRootIndex(self.dirModel.index(path))
self.treeview.clicked.connect(self.on_clicked_item)
hlay = QtWidgets.QHBoxLayout(self)
hlay.addWidget(self.treeview)
# функция обработки кликов
def on_clicked_item(self, index):
path = self.dirModel.filePath(index)
if __name__ == '__main__':
app = QtWidgets.QApplication(sys.argv)
w = Widget()
w.show()
sys.exit(app.exec_())