Russian Qt Forum

Qt => Общие вопросы => Тема начата: lexflax от Январь 25, 2014, 08:44



Название: Как перенести информацию в комбобокс????
Отправлено: lexflax от Январь 25, 2014, 08:44
Доброго времени суток.
Мне нужно получить значение первого поля из строки что выбрал пользователь , и результат записать в комбобокс...
Получаю значение так
Код:
QModelIndex current  = ui->tableView->currentIndex();
     qDebug()<<ui->tableView->model()->data(ui->tableView->model()->index(current.row(),0),0);
как полученное значение добавить в Combobox? подскажите пожалуйста.


Название: Re: Как перенести информацию в комбобокс????
Отправлено: lexflax от Январь 25, 2014, 10:13
как результат этой строчки добавить в comboBox
Код:
ui->tableView->model()->data(ui->tableView->model()->index(current.row(),0),0);


Название: Re: Как перенести информацию в комбобокс????
Отправлено: Fregloin от Январь 25, 2014, 12:00
addItem не пробовали? документацию почитать религия не позволяет?


Название: Re: Как перенести информацию в комбобокс????
Отправлено: kambala от Январь 25, 2014, 12:02
открой-ка документацию QComboBox, метод найдешь интуитивно если английский знаешь хоть немного


Название: Re: Как перенести информацию в комбобокс????
Отправлено: Vamireh от Январь 25, 2014, 14:28
Возможно лучше будет setModel() и setModelColumn(), а потом просто setCurrentIndex()


Название: Re: Как перенести информацию в комбобокс????
Отправлено: lexflax от Январь 25, 2014, 14:39
addItem пробовал, как то так
Код:
ui->comboBox->addItem((ui->tableView->model()->data(ui->tableView->model()->index(current.row(),0),0)));
но выдает такую ошибку
Код:
D:\project qt new\untitled\untitled33\mainwindow.cpp:93: ошибка: no matching function for call to 'QComboBox::addItem(QVariant)'


Название: Re: Как перенести информацию в комбобокс????
Отправлено: Vamireh от Январь 25, 2014, 14:45
addItem пробовал, как то так
Код:
ui->comboBox->addItem((ui->tableView->model()->data(ui->tableView->model()->index(current.row(),0),0)));
но выдает такую ошибку
Код:
D:\project qt new\untitled\untitled33\mainwindow.cpp:93: ошибка: no matching function for call to 'QComboBox::addItem(QVariant)'

Еще бы, в хелпе написано:
Код:
void QComboBox::addItem(const QString & text, const QVariant & userData = QVariant())


Название: Re: Как перенести информацию в комбобокс????
Отправлено: lexflax от Январь 25, 2014, 15:30
один фиг не понимаю... объясните подробно... типы данных его не устраивают? я просто не понимаю как переделать чтоб он принимал информацию...


Название: Re: Как перенести информацию в комбобокс????
Отправлено: Vamireh от Январь 25, 2014, 15:47
Возможно лучше будет setModel() и setModelColumn(), а потом просто setCurrentIndex()

суете ему ту же модель, нужный номер столбца для отображения и задаете номер строки выбранную пользователем


Название: Re: Как перенести информацию в комбобокс????
Отправлено: gil9red от Январь 25, 2014, 15:48
addItem пробовал, как то так
Код:
ui->comboBox->addItem((ui->tableView->model()->data(ui->tableView->model()->index(current.row(),0),0)));
но выдает такую ошибку
Код:
D:\project qt new\untitled\untitled33\mainwindow.cpp:93: ошибка: no matching function for call to 'QComboBox::addItem(QVariant)'

У типа qvariant есть метод toString() ;)
И лучше, хоть небольшое форматирование кода делать ;)
Код
C++ (Qt)
QAbstractItemModel * model = ui->tableView->model();
 
int row = ui->tableView->currentIndex().row();
int column = 0;
const QModelIndex & index = model->index( row, column );
const QString & text = model->data( index, Qt::DisplayRole ).toString();
ui->comboBox->addItem( text );
 


Название: Re: Как перенести информацию в комбобокс????
Отправлено: lexflax от Январь 25, 2014, 15:58
gil9red спасибо очень помогли)


Название: Re: Как перенести информацию в комбобокс????
Отправлено: gil9red от Январь 25, 2014, 16:03
Да на здоровье :)