Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
未将选项卡添加到QTabWidget_Qt_Qtabwidget - Fatal编程技术网

未将选项卡添加到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

这很奇怪。 使用此代码,我尝试向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::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一次只能在一个地方!谢谢