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 に答える