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

Qt: get text from button in QTableWidget

本文关键字:按钮 获取 取文本 QTableWidget Qt      更新时间:2023-10-16

我的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中的按钮获取文本?如果不是,我有另一种方法可以在我的应用程序中处理这个问题,但这真的很好。

您得到了QWidget,所以应该将其强制转换为QPushButton。之后,您将能够将其用作普通的pushbutton。试试这个:

QPushButton *button = qobject_cast<QPushButton *>(ui->tableWidget_tvConnection->cellWidget(row, col));
if(button) {
    //success
} else {
    //bad
}