Russian Qt Forum
Ноябрь 24, 2024, 15:49
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Пользовательский интерфейс (GUI)
>
Выбранные айтемы в дереве
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Выбранные айтемы в дереве (Прочитано 11616 раз)
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Выбранные айтемы в дереве
«
:
Июнь 18, 2017, 08:50 »
Добрый день
Что делать с выбранными айтемами если узел дерева (которому они принадлежат) закрывается (collapsed)? Должен ли я сбросить selection?
Спасибо
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Выбранные айтемы в дереве
«
Ответ #1 :
Июнь 18, 2017, 14:56 »
Наверное, от задачи зависит. Могу представить себе вариант, что при выборе рута его ноды должны стать выделенными, даже если рут коллапсирован.
(просто для экономии места, например - чтобы все ноды не показывать).
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Выбранные айтемы в дереве
«
Ответ #2 :
Июнь 18, 2017, 15:27 »
Цитата: Racheengel от Июнь 18, 2017, 14:56
Наверное, от задачи зависит. Могу представить себе вариант, что при выборе рута его ноды должны стать выделенными, даже если рут коллапсирован.
(просто для экономии места, например - чтобы все ноды не показывать).
Допустим collapse выбранных нодов разрешен. Юзер жмет delete - ноды удалены, но никаких видимых изменений в дереве не произошло. Правду сказать не могу представить задачи где это хорошо/допустимо
Записан
Old
Джедай : наставник для всех
Offline
Сообщений: 4350
Re: Выбранные айтемы в дереве
«
Ответ #3 :
Июнь 18, 2017, 15:34 »
Цитата: Igors от Июнь 18, 2017, 15:27
Допустим collapse выбранных нодов разрешен. Юзер жмет delete - ноды удалены, но никаких видимых изменений в дереве не произошло. Правду сказать не могу представить задачи где это хорошо/допустимо
В таких случаях, всегда можно показать диалог с предупреждением и спросить хочет ли пользователь удалить скрытые ноды (даже дерево развернуть и показать их).
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Выбранные айтемы в дереве
«
Ответ #4 :
Июнь 18, 2017, 21:52 »
Цитата: Old от Июнь 18, 2017, 15:34
Цитата: Igors от Июнь 18, 2017, 15:27
Допустим collapse выбранных нодов разрешен. Юзер жмет delete - ноды удалены, но никаких видимых изменений в дереве не произошло. Правду сказать не могу представить задачи где это хорошо/допустимо
В таких случаях, всегда можно показать диалог с предупреждением и спросить хочет ли пользователь удалить скрытые ноды (даже дерево развернуть и показать их).
Уверен, что я где-то такое поведение видел (прогу не вспомню, но диалог с вопросом об удалении скрытых был).
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Выбранные айтемы в дереве
«
Ответ #5 :
Июнь 19, 2017, 08:47 »
Цитата: Racheengel от Июнь 18, 2017, 21:52
Уверен, что я где-то такое поведение видел (прогу не вспомню, но диалог с вопросом об удалении скрытых был).
Такое решение "многословно" и порождает новые квешнзы - напр "а покажите-ка эти выбранные" (что-то типа reveal). Или "а не надо мне все время напоминать - я и с первого раза понял"
Ладно, бум сбрасывать по коллапсу
Записан
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Выбранные айтемы в дереве
«
Ответ #6 :
Июнь 19, 2017, 08:57 »
Чтобы не плодить тем - еще о великом UI.
Юзер может делать check/uncheck для нодов в дереве. Возможно нод имеет чайлд ноды - ну тогда ясно, ставим check/uncheck для всех чайлдов рекурсивно. Но есть мелкая проблемка - иногда нужно "чекнуть" много айтемов. Поступило предложение - давайте сначала выберем (select) айтемы, это можно сделать быстро рамкой или с клавишами. А потом жмем check и он применяется не только к данному айтему, но и ко всем выбранным
Вы считаете это здравой мыслью?
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Выбранные айтемы в дереве
«
Ответ #7 :
Июнь 19, 2017, 13:02 »
очень нужная вещь
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Выбранные айтемы в дереве
«
Ответ #8 :
Июнь 19, 2017, 16:04 »
Цитата: Igors от Июнь 19, 2017, 08:57
Вы считаете это здравой мыслью?
Да. Это удобно и логично.
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Выбранные айтемы в дереве
«
Ответ #9 :
Июнь 20, 2017, 10:44 »
Цитата: kambala от Июнь 19, 2017, 13:02
очень нужная вещь
Цитата: Racheengel от Июнь 19, 2017, 16:04
Да. Это удобно и логично.
Когда дерево вырождается в "просто список" (нет нодов с чайлдами) все хорошо. А вот если есть большое "ветвистое" дерево... Пример: выбран "корень", а юзер раскопал нод напр на 5-м уровне и жмет для него checked (про выбранный root и забыл). Что должно произойти?
Еще из той же оперы. Когда юзер "чекает" нод с чайлдами - check применяется ко всем чайлдам. Если потом check каких-то чайлдов поменялся, то парент нод показывается "half-checked". Все логично (и даже стандартно). Но кроме активности юзера есть немало операций внутри приложения - вставка, удаление, установка checked без юзера и др. И при каждой из них надо отслеживать "консистентность" checked парента. Как это сделать технично?
Кстати о птичках: глубоко не вникал но в деструкторе наследника QTreeWidgetItem почему-то (по крайней мере иногда) treeWidget() возвращает NULL,
Записан
Racheengel
Джедай : наставник для всех
Offline
Сообщений: 2679
Я работал с дискетам 5.25 :(
Re: Выбранные айтемы в дереве
«
Ответ #10 :
Июнь 20, 2017, 11:20 »
Если рут выбран - должны и чилды выбраться автоматом. Поэтому юзер будет видеть, что ноды тоже выбраны.
При удалении надо убивать все, что выбрано. Вставка на чекбоксы по идее никак не влияет. Каждый случай имхо уникален, но в общем для каждого действия должно быть представление использования - оно должно действовать для "выбранных" или "для всех"?
Записан
What is the 11 in the C++11? It’s the number of feet they glued to C++ trying to obtain a better octopus.
COVID не волк, в лес не уйдёт
Igors
Джедай : наставник для всех
Offline
Сообщений: 11445
Re: Выбранные айтемы в дереве
«
Ответ #11 :
Июнь 20, 2017, 17:09 »
Цитата: Racheengel от Июнь 20, 2017, 11:20
Если рут выбран - должны и чилды выбраться автоматом.
Та ну, это нереально хотя бы потому что узлы тоже могут иметь данные отображаемые в отдельной панели, поэтому должны выбираться без чайлдов
Цитата: Racheengel от Июнь 20, 2017, 11:20
При удалении надо убивать все, что выбрано. Вставка на чекбоксы по идее никак не влияет.
Ну как же "не влияет" - добавили нод который может быть checked или нет, стало быть checked парента запросто может измениться
Цитата: Racheengel от Июнь 20, 2017, 11:20
Каждый случай имхо уникален, но в общем для каждого действия должно быть представление использования - оно должно действовать для "выбранных" или "для всех"?
Причем тут выбранные? Данные как-то меняются, check парентов должен "соответствовать"
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4747
Re: Выбранные айтемы в дереве
«
Ответ #12 :
Июнь 21, 2017, 20:21 »
по-моему если выбран парент, он должен иметь приоритет перед чайлдами
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...