first commit
This commit is contained in:
commit
bdf5e304e6
32
README.md
Executable file
32
README.md
Executable 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
35
main.py
Executable 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_())
|
Loading…
Reference in New Issue
Block a user