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