|
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
|
|||||||||||||||||||||
QTreeWidget - вывод файловой системы03.11.2016, 11:56. Показов 5831. Ответов 37
Метки нет (Все метки)
Всем привет!
Пытаюсь уже пару дней вывести дерево файловой системы в QTreeWidget. Проблема в том что работает нестабильно. то есть при выборе одних папок всё прекрасно выводится, а при выборе других всегда падает. особенно при выборе папок с кучей мелких файлов, и тем более при выборе самих дисков С и D. ничего не пишет. просто зависает. в MainWIndow.h
в File_System.cpp // скорее всего ошибка где то здесь
2) и ещё маленький вопросик: как задать ширину столбцов по умолчанию, а то у меня очень узкими открываются
0
|
|||||||||||||||||||||
| 03.11.2016, 11:56 | |
|
Ответы с готовыми решениями:
37
Кодировкой адресов файловой системы конвертация файловой системы Мониториг файловой системы |
|
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
|
|
| 08.11.2016, 11:54 | |
|
0
|
|
|
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
|
||||||
| 08.11.2016, 13:03 [ТС] | ||||||
|
Вообще оказалось проще чем я думал. и перебор дерева не нужен былб
Если кому надо:
1
|
||||||
|
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
|
|
| 08.11.2016, 13:06 | |
|
ну... если item содержит в себе уже полный путь, а не "часть" - то да... ничего обходить не нужно...
Добавлено через 44 секунды но вряд-ли это кому-то поможет, т.к. это узкоспецифическая задача, и что вы в UserRole-и храните, зависит только от вас..
1
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 08.11.2016, 13:17 | ||
0
|
||
|
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
|
|
| 08.11.2016, 15:53 [ТС] | |
|
Байт, извините я не оч понимаю это сарказм или правда одобрение? я просто про роли не оч понимаю я хотел сначала использовать
Qt::DisplayRole но потом передумал так как это используется для отображения а мне отображение не нужно
0
|
|
|
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
|
||
| 08.11.2016, 15:55 | ||
0
|
||
|
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
|
|
| 08.11.2016, 16:00 [ТС] | |
|
Maxim Prishchepa, Maxim Prishchepa, я просто сам не знал как эту задачу решить и что можно хранить данные в самом итеме. поэтому и решил перебирать дерево. а как только просвятился, то вбил просто эти данные в момент создания)
Поймите мои знания пока что очень узкие) и поэтому когда я пишу задачу целиком и способ её решения, если есть более удобный и менее громоздкий способ, то стоит написать мне об этом и предложить его) тогда я либо рассматриваю оба варианта либо вариант предложенный опытным программистом)
0
|
|
|
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
|
|
| 08.11.2016, 16:14 | |
Сообщение было отмечено Andrey_Programm как решение
Решение
я ж писал выше - выкиньте TreeWidget
)) это гораздо более простой и более правильный способ, но вы ж решили дальше его колупать, ну ок подождем еще чучуть, когда проект разрастется до такого состояния, что его невозможно будет сопровождать, потом вспомните меня, поматеритесь, что сразу не сделали, а дальше видно будет... я считаю, каждый должен "пройти свой путь" )
1
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||
| 08.11.2016, 18:28 | |||
|
А метод data действительно очень мощный и позволяет делать чудеса. По крайней мере частенько он освобождает от необходимости создания своих наследуемых классов ради пары дата-членов. Для классов, наследуемых от QObject, с тем же результатом можно использовать механизм свойств. Добавлено через 4 минуты ![]() Добавлено через 1 минуту Andrey_Programm, надеюсь, известно, что есть еще UserRole+1 и так далее...
2
|
|||
|
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
|
||
| 08.11.2016, 18:31 | ||
|
0
|
||
|
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
|
||||
| 08.11.2016, 23:55 [ТС] | ||||
|
0
|
||||
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|||
| 09.11.2016, 00:20 | |||
|
(в том числе Item) обладают "хранилищами". Хранится там может все, чем может быть QVariant. Элементы хранилища имеют номера (роли). Некоторые номера задействованы самим Кутей и имеют enum-обозначения (DisplayRole, FontRole ...) А начиная с номера UserRole Qt разрешает пользоваться номерами нам. Соответственно, и UserRole+1, +2 ... При этом, как я понимаю, лишнего объема памяти не занимается. Есть роль - память выделяется. Нету - и памяти не надо. Примерно таков же механизм добавления собственных свойств в экземпляры классов, наследуемых от QObject. Возможно, в каких-то деталях я и ошибаюсь, я им свечку не держал, но представляю все это таким образом... Добавлено через 5 минут Но может быть дело в пробелах и/или русских буквах в именах папок и файлов? Слышал я, что Кутя их не очень жалует. Правда, не понял, за что. где и почему. Но вы посмотрите ваши "аварийные" папки на этот предмет.
2
|
|||
|
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
|
|
| 11.11.2016, 15:37 [ТС] | |
|
Делюсь своей находкой)
Дело в том что в искомых файлах имя файла не должно начинаться с "-,#,(,)" ну остальное я не проверял, тильду вроде бы пропускает. У меня было много файлов скачанных с инета название которых начиналось с минуса или решётки . поэтому при переборе дерево падало и странным образом цикл зацикливался)))
1
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
|
| 11.11.2016, 16:07 | |
|
Andrey_Programm, Имена файлов - одна из бед наших. Я пытался тут выяснить, какие есть в этой области правила и законы, но результат меня не обнадежил. Допустимые имена, а также их преобразование и эквивалентность, зависят не только от ОС (так, для винды "A", "a" - одинаковые имена файлов, для никсов - разные), но и от файловой системы, те. если у тебя на компе один диск FAT32, а другой NTFS, то для них могут разные законы. Лично я стараюсь своим файлам давать латинские 8-буквенные имена с 3-х буквенными расширениями. От греха подальше...
Но у тебя ситуация, конечно, иная, файлы - чужие. Какие имена файлов считаются различными?
0
|
|
|
693 / 465 / 162
Регистрация: 01.10.2015
Сообщений: 1,274
|
|
| 11.11.2016, 16:16 | |
|
Andrey_Programm, раз уж ваши изыскания дошли до финальной стадии, так поделитесь результатом, интересно же код посмотреть...
0
|
|
|
12 / 12 / 10
Регистрация: 08.04.2016
Сообщений: 206
|
|
| 11.11.2016, 16:20 [ТС] | |
|
Байт, не думал что количество букв в расширении тоже играют значение)
ну ладно) лень так глубоко рыться) главное понятно что именно с именами связано) найти точную политику работы с именами уже второй вопрос ) Добавлено через 2 минуты 0x90h, до финальной нет ) я же говорю что только несколько символов перебрал) перебирать всю клавиатуру лень) советую начинать имена либо с цифр либо с букв))) Код приведён выше ) я не делал систему обхода слов с запретными символами. просто в папках переименовал всё чтобы с букв начиналось а не с символов) и терь всё работает
0
|
|
|
Диссидент
27714 / 17332 / 3810
Регистрация: 24.12.2010
Сообщений: 38,978
|
||
| 11.11.2016, 16:22 | ||
|
1
|
||
|
693 / 465 / 162
Регистрация: 01.10.2015
Сообщений: 1,274
|
||
| 11.11.2016, 16:30 | ||
|
Не по теме: На днях общался с одним интересным человеком из Сбера, он утверждает, что в его конторе до сих пор используется (sic!) несколько программно-аппаратных комплексов с DOS'ом на борту, и которые "живее всех живых"... всех устраивают и будут выведены из эксплуатации только по причине "смерти" аппаратной составляющей.
1
|
||
| 11.11.2016, 16:30 | |
|
Разделы файловой системы Тормоз файловой системы
Шаблон файловой системы Повреждение файловой системы! Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы электронные
Uhbif79 12.08.2026
Выкладываю программу часов. Программа позволяет:
1. Использовать системное время и дату,
2. Есть возможность вводить время и дату вручную.
3. Реализованы 2 будильника: начало и конец рабочего дня. . . .
|
Часы с будильником на основе класса QLCDNumber
Uhbif79 12.08.2026
Всем добрый день, выкладываю программу часов с будильником на основе класса QLCDNumber.
Здесь я пробовал самостоятельно создавал классы, впервые столкнулся с видимостью переменной одного класса из. . .
|
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео:
https:/ / vkvideo. ru/ video-240781534_456239017
YouTube:
eY5-5PyI9NM
Текстовая версия
|
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать
Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
|
|
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства.
Родственных связей существует 8 ступеней, такие как:
p - отец
P - мать
q - муж
Q - жена
b - брат
B - сестра
s - сын
S - дочь
|
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире.
Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
|
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С.
Задача:
Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
|
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
|