2014-10-10 2 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] 

Так ли эв ru Можно ли получить текст с кнопки внутри QTableWidget? Если у меня нет другого способа справиться с этим в моем приложении, но это было бы очень приятно.

ответ

2

Вы получаете QWidget, поэтому вы должны направить его на QPushButton. После этого вы сможете использовать это как обычный pushbutton. Попробуйте следующее:

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

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

Спасибо, то что надо :) – floppydisk