Russian Qt Forum
Сентябрь 30, 2024, 18:32 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: [РЕШЕНО] подскажите как вставить в корень TreeView  (Прочитано 10589 раз)
unkeep
Гость
« : Июнь 20, 2013, 12:32 »

У меня новый итем вставляется в выбранного пользователем родителя. Однако в моём дереве нет одного, общего для всех родителя. Соответственно не могу вставить в корень Грустный


мои варианты:
1)отдельная кнопка для вставки в корень
2)несуществующий на самом деле, но отображающийся корень(для всех родитель) - не знаю как реализовать
3)добавить в базу данных корень

ваши варианты?

« Последнее редактирование: Июнь 25, 2013, 11:45 от unkeep » Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #1 : Июнь 20, 2013, 12:43 »

QTreeView::setRootIsDecorated(bool)
Записан

Изучением 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
unkeep
Гость
« Ответ #2 : Июнь 20, 2013, 12:59 »

у меня стоит тру. просто рута одного как такового нет. все модули 1,2,3..и тд и есть руты
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #3 : Июнь 20, 2013, 13:31 »

рут может быть только один. а твои «рут»-элементы называются top-level items.

проверь, может у тебя где-то в коде на false сбрасывается.

у тебя QTreeView или QTreeWidget?
Записан

Изучением 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
dio
Гость
« Ответ #4 : Июнь 20, 2013, 13:48 »

Еще вариант, вставлять на верхний уровень, если нет выделенной записи дерева.
« Последнее редактирование: Июнь 20, 2013, 13:50 от dio » Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #5 : Июнь 20, 2013, 15:13 »

invisibleRootItem() ?
Записан
Bepec
Гость
« Ответ #6 : Июнь 20, 2013, 15:25 »

Alex а теперь смотрим на название темы и понимаем, что это не treeWidget Веселый
Записан
tester64
Гость
« Ответ #7 : Июнь 20, 2013, 16:00 »

QAbstractItemView::rootIndex()
Записан
unkeep
Гость
« Ответ #8 : Июнь 21, 2013, 14:36 »

Еще вариант, вставлять на верхний уровень, если нет выделенной записи дерева.
да, рассматривал такой вариант, но сбросить выделение нельзя никак если что-то выбрано было
Записан
unkeep
Гость
« Ответ #9 : Июнь 21, 2013, 14:53 »

QAbstractItemView::rootIndex()
ну вернул он мне
Код
C++ (Qt)
QModelIndex(-1,-1,0x0,QObject(0x0) )
и что дальше?
Записан
unkeep
Гость
« Ответ #10 : Июнь 21, 2013, 14:57 »

рут может быть только один. а твои «рут»-элементы называются top-level items.

проверь, может у тебя где-то в коде на false сбрасывается.

у тебя QTreeView или QTreeWidget?
QTreeView . А на false не сбрасывался. пробовал специально поставить false так у "top-level items" исчезла возможность развёртывания. Список получился)
Записан
unkeep
Гость
« Ответ #11 : Июнь 21, 2013, 15:17 »

рут может быть только один. а твои «рут»-элементы называются top-level items.

проверь, может у тебя где-то в коде на false сбрасывается.

у тебя QTreeView или QTreeWidget?
и мне всё таки кажется, что они рутовые. так ка у них masterID = null. По нормальному надо было бы сделать их masterID 1 и добавить запись с ID=1, masterID = null. Но тоже, запись в базе, ничего в себе не хранящая..мне кажеться, что можно выкрутиться как-то программно...
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4744



Просмотр профиля WWW
« Ответ #12 : Июнь 21, 2013, 17:05 »

может ты через стили сделал его невидимым?
Записан

Изучением 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
dio
Гость
« Ответ #13 : Июнь 22, 2013, 17:39 »

Еще вариант, вставлять на верхний уровень, если нет выделенной записи дерева.
да, рассматривал такой вариант, но сбросить выделение нельзя никак если что-то выбрано было

Я реализовывал такой вариант при выполнении обновления (refresh). У меня было задействована QItemSelectionModel. Сброс выделения производился вызовом метода reset() у View и SelectionModel.
Записан
Akon
Гость
« Ответ #14 : Июнь 23, 2013, 12:52 »

Цитировать
ваши варианты?
Контекстное меню, вызванное по щелчку на пустом месте (а не на айтеме) относится к руту. Также должно  меню рута и вызваться при щелчке на айтеме, только с удержанием Shift, например.
Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.069 секунд. Запросов: 23.