2014-10-10 34 views
0

我有QTableWidget的在我的Qt應用程序,和我按鈕添加到它這樣:Qt的:得到按鈕上的文字在QTableWidget的

QPushButton *startButton = new QPushButton("start"); 
ui->tableWidget_tvConnection->setCellWidget(row, col, startButton); 
connect(startButton, SIGNAL(clicked()), this, SLOT(startButtonPressed())); 

而被按下時,我需要從它那裏得到的文本,所以我嘗試這樣:

void MainWindow::startButtonPressed() 
{ 
    ... 
    QPushButton *button = ui->tableWidget_tvConnection->cellWidget(row, col); 
    qDebug() << button->text(); 
} 

但是編譯器不允許我從QWidget的*轉換爲QPushButton *:

error: invalid conversion from 'QWidget*' to 'QPushButton*' [-fpermissive] 

因此,它是EV可以從QTableWidget中的按鈕獲取文本? 如果不是我有另一種方法來處理這個在我的應用程序,但這將是非常好的。

回答

2

你得到QWidget,所以你應該把它投到QPushButton。在那之後,你將可以使用這個作爲正常的pushbutton。試試這個:

QPushButton *button = qobject_cast<QPushButton *>(ui->tableWidget_tvConnection->cellWidget(row, col)); 

if(button) { 
    //success 
} else { 
    //bad 
} 
+0

Спасибо,точтонадо:) – floppydisk 2014-10-10 14:09:03