Qt では、アイテムをクリックするたびに QDialog ウィンドウを開き、 new でそれを実行しています。クリックしたアイテムごとに QDialog のインスタンスを 1 つだけ開いていることを確認したいのです。
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 のある種のハッシュまたはベクトルを保持する必要がありますか? また、私の2番目の質問は、QDialogウィンドウをclose()で閉じるたびに、それを開く責任があったオブジェクトpGroupDialogContainerが破棄されますか?または、QDIalog が閉じたことを検出したときに削除する必要がありますか?