我的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 *>();