Название: ComboBoxDelegate в tableView: как достать текст из выпадающего списка в таблице? Отправлено: diagnosefiz от Июнь 02, 2017, 13:20 Выпадающий список должен появится во второй колонке только в пустой строке после нажати "Add".
Вот я нажимаю на строку в таблице и появляется выпадаюащий список, но, как только осуществляется переход на другую ячейку - появляются числа в comboBoxe (индексы). Как сохранить выбранный текст? И как отобразить выпадающий combobox не по нажатию на строку, а сразу при появлении пустой строки? Делала через делегат. Пишите любые мысли на этот счет. (http://cdn1.savepice.ru/uploads/2017/6/2/f3cbaa2708956e617a2c27f8288c7f20-full.png)(http://cdn1.savepice.ru/uploads/2017/6/2/add69963dcc9c57229ddc2b88431ef84-full.png) comboboxdelegate.h Код: #include <QWidget> comboboxdelegate.cpp Код: #include "comboboxdelegate.h" dialog.cpp - здесь добавляется пустая строка и запихивается во вторую колонку ComboBox Код: void Dialog::on_pushButton_clicked() Название: Re: ComboBoxDelegate в tableView: получаю не текст, а индексы Отправлено: GraninDm от Июнь 02, 2017, 13:26 Судя по всему в моделе нужно установить кроме EditRole еще и DisplayRole.
Название: Re: ComboBoxDelegate в tableView: как достать текст из выпадающего списка в таблице? Отправлено: VPS от Июнь 02, 2017, 15:32 как только осуществляется переход на другую ячейку - появляются числа в comboBoxe (индексы). Но вы же сами в модель записываете индекс:Код: void ComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const Название: Re: ComboBoxDelegate в tableView: как достать текст из выпадающего списка в таблице? Отправлено: diagnosefiz от Июнь 02, 2017, 15:46 как только осуществляется переход на другую ячейку - появляются числа в comboBoxe (индексы). Но вы же сами в модель записываете индекс:Код: void ComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const Название: Re: ComboBoxDelegate в tableView: как достать текст из выпадающего списка в таблице? Отправлено: GraninDm от Июнь 02, 2017, 15:57 http://www.prog.org.ru/topic_29216_0.html (http://www.prog.org.ru/topic_29216_0.html)
Название: Re: ComboBoxDelegate в tableView: как достать текст из выпадающего списка в таблице? Отправлено: titan83 от Июнь 02, 2017, 19:51 как только осуществляется переход на другую ячейку - появляются числа в comboBoxe (индексы). Но вы же сами в модель записываете индекс:Код: void ComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const Название: Re: ComboBoxDelegate в tableView: как достать текст из выпадающего списка в таблице? Отправлено: diagnosefiz от Июнь 03, 2017, 13:54 как только осуществляется переход на другую ячейку - появляются числа в comboBoxe (индексы). Но вы же сами в модель записываете индекс:Код: void ComboBoxDelegate::setModelData(QWidget *editor, QAbstractItemModel *model, const QModelIndex &index) const Название: Re: ComboBoxDelegate в tableView: как достать текст из выпадающего списка в таблице? Отправлено: VPS от Июнь 03, 2017, 16:29 Заметил, что при каждом нажатии кнопки, Вы постоянно создаёте новый делегат и назначаете его колонке. В этом нет смысла - на мой взгляд лучше поместить его в конструкторе диалога.
Название: Re: ComboBoxDelegate в tableView: как достать текст из выпадающего списка в таблице? Отправлено: diagnosefiz от Июнь 06, 2017, 16:05 Заметил, что при каждом нажатии кнопки, Вы постоянно создаёте новый делегат и назначаете его колонке. В этом нет смысла - на мой взгляд лучше поместить его в конструкторе диалога. Я тоже так думаю. Вы не подскажете, как отображать comboBox с тем значением, которое выбрано в модели? исходя из моих скринов, у первого элемента значение "character varying". как его можно отобразить по умолчанию? |