我有这样的情况,当一个人点击一个按钮时,它应该复制一个标签,但我遇到了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);
}
答案 0 :(得分:2)
其实你可以。
QHBoxLayout* hbLayout = qobject_cast<QHBoxLayout*>(tab->layout());
Q_ASSERT(hbLayout);
但请注意,QObject
派生类的 NOT 是可复制的。