选项卡未添加到 QTabWidget

Posted

技术标签:

【中文标题】选项卡未添加到 QTabWidget【英文标题】:Tab not being added to QTabWidget 【发布时间】:2012-12-29 19:39:12 【问题描述】:

这很奇怪。 使用此代码,我正在尝试向 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”时,它可以工作,当我将滚动面板的小部件设置为panel-&gt;getWidget() 时,它可以工作。但是,当我尝试添加选项卡“nT”时,它不起作用。我很迷茫。我应该注意到panel-&gt;getWidget() 返回一个QWidget,正如预期的那样。具体来说,在这种情况下,它将返回一个QTextEdit。另外,MainWindow::main 是静态的QTabWidget

所以我的问题是,为什么没有添加标签“nT”?

【问题讨论】:

【参考方案1】:

基本上你的代码就是这样做的:

MainWindow::main->addTab(panel->getWidget(), "nT"); 
ui->scrollPanel->setWidget(panel->getWidget());

由于一个小部件一次只能在一个地方,一旦你将它添加到滚动面板,它就会从你刚刚放置它的QTabWidget 中删除。

但是,您可以使用QTextEdit::document()/setDocument() 创建一个新的QTextEdit,该QTextDocument 将共享相同的底层QTextDocument

【讨论】:

哇...我不知道 QWidget 一次只能在一个地方!谢谢。

以上是关于选项卡未添加到 QTabWidget的主要内容,如果未能解决你的问题,请参考以下文章

Dart Flutter DevTools“调试器”选项卡未显示

网络选项卡未显示应用在选择器上的 css

选项卡中的顺风选项卡未按预期工作

片段选项卡未使用所有空间

React 选项卡未出现在 chrome 开发人员工具中

引导导航选项卡未加载正确的页面