2013-05-13 2 views
2

Qt가 처음인데 테이블 위젯에서 콤보 상자의 가치를 얻는 데 도움이 필요합니다.tablewidget에서 콤보 상자의 텍스트를 가져 오는 방법은 무엇입니까?

내가 콤보 상자를 추가 할 "setCellWidget"를 사용 (이름이 "tableWidget_4"입니다) 테이블 위젯 (내 경우는, 그 이름은 "settingA"입니다) :


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")을 클릭하면 콤보 상자 (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) 기능을 사용할 수 있습니다 (A QCombobox * 해당 포인터를 캐스팅 qobject_cast 또는 dynamic_cast는 사용하는 것을 잊지 마세요)로 설정 위젯으로는 QWidget *을 얻으려면 QComboBox 위젯. qobject_cast를 사용하여 QComboBox로 캐스팅하고 currentText() 함수를 사용하여 텍스트를 가져옵니다.

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

당신은 이것을 이해하기 쉽게 만듭니다! 고맙습니다! – Alison

관련 문제