我有一个带有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();
这会引发一个错误“它没有名字成员......”
我做错了什么?
答案 0 :(得分:2)
您需要对选项卡中的特定类型进行显式(向下)强制转换。这些函数不存在于currentWidget()返回的基类QWidget中。
std::string type = dynamic_cast<CustomType*>(ui->tabWidget->currentWidget())->typeName().toUtf8().constData();