1

我有一个带有 2 个选项卡的 QTabWidget,我将每个选项卡提升为 2 个自定义小部件。这些小部件具有函数“typeName()”和“baseName()”,但我无法使用“QTabwidget->currentWidget()”访问这些函数。

        std::string type = ui->tabWidget->currentWidget()->typeName().toUtf8().constData();
        std::string base = ui->tabWidget->currentWidget()->baseName().toUtf8().constData();

这给我一个错误“它没有名为...的成员”

我究竟做错了什么?

4

1 回答 1

2

您需要对选项卡中的特定类型进行显式(向下)强制转换。这些函数不存在于 currentWidget() 返回的基类 QWidget 中。

std::string type = dynamic_cast<CustomType*>(ui->tabWidget->currentWidget())->typeName().toUtf8().constData();
于 2013-08-14T13:13:28.873 回答