class MyDialog : public QDialog
{
public:
MyDialog(QListWidget * w)
: m_w(w)
{
m_layout = new QGridLayout(this);
m_layout.addWidget( w );
this->exec();
}
~MyDialog() {
m_layout->removeWidget( m_w );
}
private:
QGridLayout * m_layout;
QListWidget * m_w;
}
w也是主窗口布局的子项。问题是当MyDialog的一个对象被破坏时,它会破坏w,而它在MyDialog的析构函数中被删除;
你有没有比克隆QListWidget更好的解决方案?
答案 0 :(得分:1)
我认为你可以像这样做smf:
~MyDialog()
{
m_w.reparent(main_window);
}
但是如果你必须克隆QListView,我认为你做了smf wrog。 为QListView创建上下文菜单并为特定的QListViewItem运行此对话框是不是很容易?