在 Qt 中打开 QDialog 窗口,每次我单击某个项目时,我都会使用 new 进行操作,我想确保我只为每个我单击的项目打开一个 QDialog 实例:
void foo::treeWidget_itemClicked(QTreeWidgetItem *item,nt column)
.....
QString groupID = item->data(0, Qt::UserRole).toString();
QString groupName = item->text(0);
GroupDialogContainer* pGroupDialogContainer = new GroupDialogContainer(groupID, groupName, this);
pGroupDialogContainer->show();
}
class GroupDialogContainer : public QDialog
{
Q_OBJECT
public:
GroupDialogContainer(QString GroupId,QString GroupName,QWidget *parent=0);
GroupDialogContainer(QWidget *parent=0);
virtual ~GroupDialogContainer();
Ui::GroupDialog ui;
public slots:
void closeEvent(QCloseEvent *event);
};
我需要保留 GroupDialogContainer 的某种散列或向量吗?我的第二个问题也是:每次我用 close () 关闭 QDialog 窗口时,负责打开它的对象 pGroupDialogContainer 是破坏者吗?或者当我检测到 QDIalog 已关闭时是否需要删除它?