我的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中的按钮获取文本吗? 如果我没有其他方法在我的应用程序中处理这个问题,但这将非常好。
答案 0 :(得分:2)
您获得QWidget
,因此您应该将其投放到QPushButton
。之后,您将能够将其用作普通pushbutton
。试试这个:
QPushButton *button = qobject_cast<QPushButton *>(ui->tableWidget_tvConnection->cellWidget(row, col));
if(button) {
//success
} else {
//bad
}