2013-05-13 4 views
2

Я новичок в Qt, мне нужна помощь в получении значения combobox в виджетах таблицы.Как получить текст combobox в tablewidget?

Я использую «setCellWidget», чтобы добавить выпадающий (в моем случае, его имя «settingA») в таблицу виджета (имя «tableWidget_4»):


QComboBox* settingA = new QComboBox(); 


settingA->addItem("100"); 
settingA->addItem("200"); 

ui->tableWidget_4->setColumnCount(1); 
ui->tableWidget_4->setRowCount(3); 
ui->tableWidget_4->setCellWidget (0, 0, settingA); 

Что я хочу сделать здесь: Когда нажата кнопка (ее имя - «ApplyComboButton»), я хочу, чтобы значение combobox (settingA) можно было сохранить в QStringList (InputComboData), и это как я пытаюсь это сделать:


void MainWindow::on_ApplyComboButton_clicked() 
{ 
QStringList InputComboData; 

InputComboData << ui->tableWidget_4->item(0,0)->text(); 

} 

И это не удается. Как я могу получить значение моих списков?

ответ

1

Вы можете использовать функцию QTableWidget::cellWidget (int row, int column), чтобы получить ваш виджет QComboBox. Используйте qobject_cast, чтобы отправить его в QComboBox, и используйте функцию currentText(), чтобы получить текст.

QComboBox *myCB = qobject_cast<QComboBox*>(ui->tableWidget_4->cellWidget(0,0)); 
InputComboData << myCB->currentText(); 
+0

Вы так просто поняли! Спасибо! – Alison

0

Использование QTableWidget-х cellWidget получить QWidget * в виджет, установленный в качестве cellWidget (не забудьте использовать qobject_cast или dynamic_cast, чтобы бросить этот указатель на QComboBox *)

+0

Спасибо! Это поможет. – Alison

Смежные вопросы