0
我正在使用FlowLayout示例qt。使用上下文菜單從佈局中刪除本身
我爲FlowLayout中的所有項目添加了一個上下文菜單,以啓用重命名和刪除。重命名工作,但每當我打電話刪除,我收到一個分段錯誤。
這裏是removeSlot
呼叫:
QAction *removeAction = new QAction(tr("Remove"), this);
connect(removeAction, SIGNAL(triggered()), this, SLOT(removeSlot()));
Menu->addAction(removeAction);
併發射信號:
void FlowLayoutWidget::removeSlot()
{
emit removeMe(m_ownId);
}
FlowWindow.cpp捕獲信號,並執行下面的代碼:
void FlowWindow::removeItemAt(int _index)
{
while(QLayoutItem* item = flowLayout->itemAt(_index))
{
QWidget* widget = item->widget();
flowLayout->removeWidget(widget);
delete widget;
break;
}
}
每當此功能被稱爲,我收到一個分割錯誤。我該如何解決這個問題?
謝謝:)。這解決了分割錯誤問題。你能告訴我如何通過'itemAt'獲得索引以正確刪除該項目?我可以迭代流佈局嗎? – www
這是一個不同的話題,所以它應該是它自己的問題。當你問這個問題時,一定要顯示你已經嘗試了什麼,以及你發現了什麼。 (這可以自己解決。) – tmpearce
Ops。這是因爲索引沒有被更新。現在一切都很清楚。 – www