Qt:从QTableWidget中的按钮获取文本

时间:2014-10-10 14:05:41

标签: c++ qt qtablewidget qpushbutton

我的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]

那么甚至可以从QTableWidget中的按钮获取文本吗? 如果我没有其他方法在我的应用程序中处理这个问题,但这将非常好。

1 个答案:

答案 0 :(得分:2)

您获得QWidget,因此您应该将其投放到QPushButton。之后,您将能够将其用作普通pushbutton。试试这个:

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

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