Qt QTreeWidget, как получить строку, в которой находится QComboBox

У меня есть QTreeWidget с несколькими QComboBox в качестве QTreeWidgetItems. Я пытаюсь найти способ получить текущую строку QTreeWidget выбранного QComboBox. ui->sensorTree — это виджет QTreeWidget. Мое дерево выглядит примерно так:

parent0
    child0    QComboBox0
    child1    QComboBox1
parent1
    child0    QComboBox0    QComboBox0
    child1    QComboBox1    QComboBox1

Поэтому, если был выбран QComboBox0, я бы хотел вернуть 0.

Обновлять:

int index = ui->sensorTree->currentIndex().row();

Это дает мне правильную строку. Теперь проблема в том, что для изменения QComboBox не нужно выбирать строку. Мне нужно подключить QComboBox.indexChanged, чтобы передать строку, в которой находится ComboBox, и текущий текст ComboBox всех ComboBox в строке.


person Jared Price    schedule 12.09.2013    source источник
comment
Используйте свойство row() необходимого QModelIndex   -  person Dmitry Sazonov    schedule 12.09.2013
comment
Не могли бы вы расширить свой вопрос (или сделать его более точным/предоставить пример кода)? Я не мог понять вашу проблему :( Если вы хотите изменить выделение - читайте документацию Qt.   -  person Dmitry Sazonov    schedule 12.09.2013
comment
Я обновил свой вопрос. Я надеюсь, что это имеет больше смысла.   -  person Jared Price    schedule 12.09.2013


Ответы (1)


Я заставил его работать. В итоге я просто создал свой собственный класс, унаследовавший QComboBox, и просто добавил конструктор, который передал дополнительный параметр с номером строки. Затем я создал собственный сигнал, который передал текущий текст поля со списком и строку, полученную из данных строки, переданных конструктором.

person Jared Price    schedule 12.09.2013
comment
А что будет, если убрать какую-то строку выше? Тогда ваш индекс стал недействительным. Вы должны передать QPersistentModelIndex вместо номера строки - person Dmitry Sazonov; 13.09.2013
comment
В моем случае это сработает. В моем приложении строки удаляются только в том случае, если вся таблица перестраивается, и в этом случае также перестраиваются поля со списком. - person Jared Price; 13.09.2013