+++ Данная ошибка создана размножением ошибки 19611 +++ Для выбора групп пакетов требуется виджет выбора групп (checkbox'ы, со значками, названием и описанием). [x] значок название (полужирным) описание
Есть идеи, для чего он может еще быть использован?
Есть идея доработать текущий: Картинки можно справа помещать, а крыжики остануться слева. Так же можно добавить event, который будет отправляться при нахождении курсора мыши над строкой. По нему в отдельном label можно будет показывать соотв. description. Это сэкономит место по высоте.
(В ответ на комментарий №2) > Есть идея доработать текущий: > Картинки можно справа помещать, а крыжики остануться слева. > Так же можно добавить event, который будет отправляться при нахождении курсора > мыши над строкой. По нему в отдельном label можно будет показывать соотв. > description. Это сэкономит место по высоте. Не годится. Нынешний список очень сложно использовать.
Есть также предложение сделать выделение в виде дерева, а описание и (опционально) значок - в виде отдельного блока. То есть примерно так: Виджет списка: > [x] Работа с мультимедиа L [x] Редактирование звука L [x] Редактирование звука L [x] Редактирование звука При нажатии на галочку (>) ветка сворачивается или разворачивается. По умолчанию все ветки свёрнуты. При нажатии на текст пункта показывается его описание (пока без значка можно) в виджете 2 (обычный Label с переносом), расположенный под списком.
(В ответ на комментарий №3) > Нынешний список очень сложно использовать. Кому? Пользователю? Чем? Почему "очень"?
(В ответ на комментарий №3) > Нынешний список очень сложно использовать. Я подозреваю, что новый будет действительно "очень сложно использовать" Стасу, т.к. тот же ахалай-махалай, который он сделал с tree повторить(еще и с наворотами) не смогу, а сделаю по-своему.
(В ответ на комментарий №5) > (В ответ на комментарий №3) > > Нынешний список очень сложно использовать. > Кому? Пользователю? Да. И не одному. > Чем? Почему "очень"? Потому что а) слишком много пунктов, а в большом списке легко пропустить нужное б) нет описаний в) нет структурированности (как следствие — см. п. а) г) выделение всей строки сбивает пользателя с толку, он привык что выделение показывает текущий фокус.
(В ответ на комментарий №7) > а) слишком много пунктов, а в большом списке легко пропустить нужное С деревом меньше пунктов не станет > б) нет описаний с описаниями их будет "еще больше", поэтому предлагаю по накрытию мышкой показывать описание в одном отдельном месте (это далеко не моя идея, см. настройки virtualbox). > в) нет структурированности (как следствие — см. п. а) Насчем неразвернутости дерева по умолчанию сомневаюсь, т.к. "легко пропустить нужное". А-а-а, там получиться плюс в том, что всю ветку отметить можно будет. > г) выделение всей строки сбивает пользателя с толку, он привык что выделение > показывает текущий фокус. Там еще галки есть. Выделение, согласен, лишенее, но сбивать не должно, т.к. везде такое используется. В HTML списках с множественным выбором, например. В общем, что-нибудь сварганю, но мне кажется, что это не быстро.
(В ответ на комментарий №8) > (В ответ на комментарий №7) > > а) слишком много пунктов, а в большом списке легко пропустить нужное > С деревом меньше пунктов не станет Будет меньше пунктов на верхнем уровне. > > б) нет описаний > с описаниями их будет "еще больше", поэтому предлагаю по накрытию мышкой > показывать описание в одном отдельном месте (это далеко не моя идея, см. > настройки virtualbox). Читай мой комментарий #4 - я как раз это и предлагал. > > в) нет структурированности (как следствие — см. п. а) > Насчем неразвернутости дерева по умолчанию сомневаюсь, т.к. "легко пропустить > нужное". > А-а-а, там получиться плюс в том, что всю ветку отметить можно будет. Угу. Зато не будет путаницы. Пользователь же идёт от общих задач. > > г) выделение всей строки сбивает пользателя с толку, он привык что выделение > > показывает текущий фокус. > Там еще галки есть. Выделение, согласен, лишенее, но сбивать не должно, т.к. > везде такое используется. В HTML списках с множественным выбором, например. Неее, это только твоё творчество. > В общем, что-нибудь сварганю, но мне кажется, что это не быстро. Я не тороплю ;)
(В ответ на комментарий №9) > > везде такое используется. В HTML списках с множественным выбором, например. > Неее, это только твоё творчество. Мое творчество -- галочки. А выделение везде есть.
(В ответ на комментарий №10) > Мое творчество -- галочки. А выделение везде есть. Нет, выделение по включение галочки только у тебя есть. Что не есть правильно.
(В ответ на комментарий №11) > Нет, выделение по включение галочки только у тебя есть. Еще раз повторяю. У меня включение галочки по выделению. Галочки туда я запихал. Остальное стандартное, как в HTML, например.
Реанимируем тему для Кентавра. Сергей, что необходимо чтобы реализовать?
Как минимум, пока можно реализовать без значков и описаний. Просто иерархический список с контролируемым включением/выключением флажков и управлением первоначальным сворачиванием (до первого уровня).
(В ответ на комментарий №13) > Сергей, что необходимо чтобы реализовать? Мне врубиться в "Model/View Programming", но пока не врубаюсь
(В ответ на комментарий №15) > Мне врубиться в "Model/View Programming", но пока не врубаюсь А зачем? Внешний вид переключаться не будет. Так что парадигма MVC здесь не особо уместна и избыточна.
Тогда я просто не знаю, как сделать. Если есть исходники необходимого класса, дайте -- встрою.
(В ответ на комментарий №17) > Тогда я просто не знаю, как сделать. Если есть исходники необходимого класса, > дайте -- встрою. Нужно на этапе создания строки добавить что-то типа (внимание! неработающий прототип!) --- a/alterator-browser-qt/widgets/al_listbox.cc +++ b/alterator-browser-qt/widgets/al_listbox.cc @@ -124,6 +124,25 @@ void AListBox::addRow(QStringList& data, RowType row_type) int col = 0; AListBoxItem *item = new AListBoxItem(this); + + /* + else if ("parent" == name) + { + // Lookup parent if it name is defined + if( ! value.isEmpty() ) { + QTreeWidgetItem *parent = NULL; + QList<QTreeWidgetItem *> l = wnd_->findItems( value ); + if( l.count() > 0 ) { + parent = l.at(0); + } + } + + // Set parent by create new item and move under new parent + if( parent ) { + parent->addChild( ); + } + } + */
Есть две проблемы: 1. addRow не принимает сторонних свойств (name, parent,...) 2. Не факт, что элемент родителя будет создан раньше дочернего элемента.
(В ответ на комментарий №18) > неработающий прототип! Да таких я много могу сделать, а толку?
alterator-browser-qt-2.13.0-alt1