QTabWidget:确定页面为QTableWidget



我的Qt应用程序的主窗口有QTabWidget,其中每个选项卡都是一个QTableWidget。我需要访问当前表的选定单元格(使用currentRow()currentColumn())。但当我把指针指向ui->tabWidget->currentWidget()的表时,结果是QWidget*,所以像currentRow()这样的方法不存在。

是否有任何方法可以确定QTabWidget的所有页面都是QTableWidget类的成员?

您可以使用qobject_cast来检查QObject类型的对象是否是从QObject 继承的T类型的对象

QWidget *widget = ui->tabWidget->currentWidget();
QTableWidget *tableWidget = qobject_cast<QTableWidget*>(widget);
if (tableWidget != 0)
{
    /// Do work
}

顺便说一句,你可以通过获得标签中的所有QTableWidget

QList<QTableWidget *> allTables = ui->tabWidget->findChildren<QTableWidget *>();

最新更新