【问题标题】:Copy layout from another widget从另一个小部件复制布局
【发布时间】:2015-03-18 09:07:51
【问题描述】:

我有所以当一个人点击一个按钮时,它应该复制一个标签,但我遇到了tab->layout() 只返回QLayout 并且我无法转换它QHBoxLayout 的问题。

void MainWindow::on_dublicateSection_clicked()
{
    QWidget* tab = tabWidget->currentWidget();

    QWidget* newTab = new QWidget(tab);

    QHBoxLayout* layout = new QHBoxLayout(tab->layout());
    newTab->setLayout(layout);

    content->IncreaseArraySize(Section(tabWidget->count()));

    QString tabText = tabWidget->tabText(tabWidget->currentIndex());
    content->sections[tabWidget->count()].name = tabText;
    tabWidget->addTab(newTab,tabText);
}

【问题讨论】:

    标签: qt qlayout


    【解决方案1】:

    其实可以的。

    QHBoxLayout* hbLayout = qobject_cast<QHBoxLayout*>(tab->layout());
    Q_ASSERT(hbLayout);
    

    但请记住,QObject 派生类不可可复制。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多