未将选项卡添加到QTabWidget
这很奇怪。 使用此代码,我尝试向QTabWidget添加选项卡:未将选项卡添加到QTabWidget,qt,qtabwidget,Qt,Qtabwidget,这很奇怪。 使用此代码,我尝试向QTabWidget添加选项卡: void SideWidget::changePanel(SearchablePanel* panel){ ui->nextButton->setEnabled(false); cout << pointer; widgetHistory[++pointer] = panel; QWidget* widget = panel->getWidget(); cout
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::changePanel(SearchablePanel*panel){
ui->nextButton->setEnabled(false);
coutgetwidget();
cout-id;
主窗口::主->添加选项卡(小部件,“nT”);
QTextEdit*thing=新的QTextEdit(“测试”);
主窗口::main->addTab(thing,“tabqx”);
此->内部更改(面板);
}
和内部变化:
void SideWidget::internalChange(SearchablePanel *panel){
cout << "internale change, "+panel->id;
ui->scrollPanel->setWidget(panel->getWidget());
ui->prevButton->setEnabled(true);
}
void SideWidget::internalChange(SearchablePanel*panel){
cout-id;
ui->scrollPanel->setWidget(面板->getWidget());
ui->prevButton->setEnabled(真);
}
现在,当我添加选项卡“tabqx”时,它工作了,当我将scrollPanel的小部件设置为panel->getWidget()
时,它工作了。但是,当我尝试添加选项卡“nT”时,它不起作用。我很困惑。我应该注意到,panel->getWidget()
返回一个QWidget
,这可能是意料之中的。在本例中,它将返回一个QTextEdit
。另外,MainWindow::main
是一个静态QTabWidget
所以我的问题是,为什么不添加“nT”选项卡?基本上您的代码就是这样做的:
MainWindow::main->addTab(panel->getWidget(), "nT");
ui->scrollPanel->setWidget(panel->getWidget());
由于小部件一次只能在一个地方,一旦您将其添加到滚动面板中,它就会从您刚刚放置它的QTabWidget
中删除
但是,您可以使用创建一个新的
QTextEdit
,它将共享相同的底层QTextDocument
。Wow。。。我不知道QWidget一次只能在一个地方!谢谢