これはかなり奇妙です。このコードを使用して、QTabWidget にタブを追加しようとしています:
void SideWidget::changePanel(SearchablePanel* panel){
ui->nextButton->setEnabled(false);
cout << pointer;
widgetHistory[++pointer] = panel;
QWidget* widget = panel->getWidget();
cout << panel->id;
MainWindow::main->addTab(widget, "nT");
QTextEdit* thing = new QTextEdit("Test");
MainWindow::main->addTab(thing, "tabqx");
this->internalChange(panel);
}
内部変更:
void SideWidget::internalChange(SearchablePanel *panel){
cout << "internale change, "+panel->id;
ui->scrollPanel->setWidget(panel->getWidget());
ui->prevButton->setEnabled(true);
}
これで、タブ「tabqx」を追加すると機能し、scrollPanel のウィジェットを設定するpanel->getWidget()
と機能します。ただし、タブ「nT」を追加しようとすると機能しません。私は非常に混乱しています。予想どおり、 がをpanel->getWidget()
返すことに注意してください。QWidget
この場合、具体的には、 を返しますQTextEdit
。また、MainWindow::main
静的QTabWidget
です。
だから私の質問は、タブ「nT」が追加されていないのはなぜですか?