Получение порядкового номера QTreeView, с родителем и без |
Здравствуйте, гость ( Вход | Регистрация )
Получение порядкового номера QTreeView, с родителем и без |
poluna |
15.12.2015, 17:11
Сообщение
#1
|
Студент Группа: Участник Сообщений: 27 Регистрация: 5.10.2015 Пользователь №: 4458 Спасибо сказали: 1 раз(а) Репутация: 0 |
Привет всем.
Есть у меня класс TreeComboBox, как можно понять из названия в QComboBox у меня находится QTreeView. Проблема в том, что я никак не могу получить порядковый номер элемента в QTreeView, для автоматического выбора при выделении в моей модели. С помощью idx.row() я могу получить, но если у элемента уровень вложенности например 2, то получается ерунда. |
|
|
lanz |
15.12.2015, 17:42
Сообщение
#2
|
Старейший участник Группа: Участник Сообщений: 690 Регистрация: 28.12.2012 Пользователь №: 3660 Спасибо сказали: 113 раз(а) Репутация: 8 |
А как вы определяете порядковый номер элемента в дереве? Всмысле что это значит? Т.е. какой порядковый номер должен быть у первого элемента вложенности 2 например?
Сообщение отредактировал lanz - 15.12.2015, 17:43 |
|
|
poluna |
16.12.2015, 9:40
Сообщение
#3
|
Студент Группа: Участник Сообщений: 27 Регистрация: 5.10.2015 Пользователь №: 4458 Спасибо сказали: 1 раз(а) Репутация: 0 |
Забыла сказать, что QTreeView всегда находится в состоянии expandAll.
Порядковый номер хочу определять визуально так же как и в QComboBox. Например Пока только приходит в голову, обход всех элементов рекурсивно с их дочерними элементами и присвоением номера.Или ввести свою сущность (строка) в модель, и с помощью нее строить модель и нумеровать строки. Хотя честно говоря внятной и полной картины как это сделать нет. |
|
|
Алексей1153 |
16.12.2015, 10:04
Сообщение
#4
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
poluna, расскажи поподробнее, какие действия хочешь совершить ? Для идентификации элемента вроде достаточно методов parent и data индекса
ну, и да, если хочешь такую сквозную нумерацию сделать - необходимо реализовать у элемента метод навроде GetMyNumber() , где произойдёт рекурсивный вызов метода родителя в том числе |
|
|
poluna |
16.12.2015, 10:57
Сообщение
#5
|
Студент Группа: Участник Сообщений: 27 Регистрация: 5.10.2015 Пользователь №: 4458 Спасибо сказали: 1 раз(а) Репутация: 0 |
Так как мой класс производен TreeComboBox от QComboBox, то мне нужно хотя бы переопределить функции: currentIndex, setCurrentIndex и currentText.
Это нужно например для ситуации, когда мне нужно добавить пользователя в группу, выбрав группу в дереве, нажав кнопку добавить и в появившемся диалоге добавления пользователя будет выбрана группа (выделенная ранее) и ... |
|
|
Алексей1153 |
16.12.2015, 11:09
Сообщение
#6
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
poluna, не совсем понимаю участия комбы в этом процессе . В классе дерева обрабатываешь contextMenuEvent , там определяешь, какой элемент модели дерева щёлкнули (viewport() , indexAt() ) . По индексу модели отыскивается элемент
|
|
|
poluna |
16.12.2015, 11:27
Сообщение
#7
|
Студент Группа: Участник Сообщений: 27 Регистрация: 5.10.2015 Пользователь №: 4458 Спасибо сказали: 1 раз(а) Репутация: 0 |
Мне просто нужен комбобокс с деревом!
Всё есть, но есть нюансы, из-за которых пока грустно |
|
|
Алексей1153 |
16.12.2015, 11:31
Сообщение
#8
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
|
|
|
poluna |
16.12.2015, 12:10
Сообщение
#9
|
|
Студент Группа: Участник Сообщений: 27 Регистрация: 5.10.2015 Пользователь №: 4458 Спасибо сказали: 1 раз(а) Репутация: 0 |
И я о том же!
Видимо я не так выражаюсь. На картинке, показано, что у меня есть. В диалоге "Создание группы" указывается, родитель он должен быть выбран таким же, как и выделенный в левом дереве основного окна. А я пока могу выбрать только ветки первого уровня. Так надеюсь понятней, что мне нужно. Или я тебя не понимаю! |
|
|
||
Алексей1153 |
16.12.2015, 12:28
Сообщение
#10
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
poluna, у меня обычно есть "внемодельное" дерево - источник, по которому модель пересобирается. Контейнер обычно на основе QMap<>
У тебя этой очень удобной детальки , похоже, нету, поэтому мы не и понимаем друг друга В контейнере всё ищется и перебирается запросто Сообщение отредактировал Алексей1153 - 16.12.2015, 12:30 |
|
|
Текстовая версия | Сейчас: 24.11.2024, 19:17 |