QTabWidget:确定页面为QTableWidget
QTabWidget: determine pages to be QTableWidget
我的 Qt 应用程序的主窗口有 QTabWidget,其中每个选项卡都是一个 QTableWidget。我需要访问当前 table 的选定单元格(使用 currentRow()
和 currentColumn()
)。但是,当我使用 ui->tabWidget->currentWidget()
指向 table 时,结果是 QWidget*,因此 currentRow()
之类的方法不存在。
有没有办法确定QTabWidget的所有页面都是QTableWidget的成员class?
您可以使用 qobject_cast
来检查 QObject
类型的对象是否是 T
类型的对象继承自 QObject
QWidget *widget = ui->tabWidget->currentWidget();
QTableWidget *tableWidget = qobject_cast<QTableWidget*>(widget);
if (tableWidget != 0)
{
/// Do work
}
顺便说一句,您可以通过
在您的标签中获取所有QTableWidget
QList<QTableWidget *> allTables = ui->tabWidget->findChildren<QTableWidget *>();
我的 Qt 应用程序的主窗口有 QTabWidget,其中每个选项卡都是一个 QTableWidget。我需要访问当前 table 的选定单元格(使用 currentRow()
和 currentColumn()
)。但是,当我使用 ui->tabWidget->currentWidget()
指向 table 时,结果是 QWidget*,因此 currentRow()
之类的方法不存在。
有没有办法确定QTabWidget的所有页面都是QTableWidget的成员class?
您可以使用 qobject_cast
来检查 QObject
类型的对象是否是 T
类型的对象继承自 QObject
QWidget *widget = ui->tabWidget->currentWidget();
QTableWidget *tableWidget = qobject_cast<QTableWidget*>(widget);
if (tableWidget != 0)
{
/// Do work
}
顺便说一句,您可以通过
在您的标签中获取所有QTableWidget
QList<QTableWidget *> allTables = ui->tabWidget->findChildren<QTableWidget *>();