-1

私はコードの一部を扱っていますが、その正確性について 100% 確信が持てません。それについてどう思うか教えてください。(私はQtでコーディングしています)

サンプルのみ:

CustomWidget *widget; //defined as private

widget = new CustomWidget(this);
connect(widget,SIGNAL(onCLose(), this, SLOT(onWidgetClose()));

widget = new CustomWidget(this);
connect(widget,SIGNAL(onCLose(), this, SLOT(onWidgetClose()));

widget = new CustomWidget(this);
connect(widget,SIGNAL(onCLose(), this, SLOT(onWidgetClose()));


void onWidgetClose(){
   CustomWidget *w = findClosedWidget();
   delete w;
}
4

1 に答える 1

1

独自のものを書く必要はありません。特にonWidgetClosefindClosedWidget正しいものを書くのはfindClosedWidget非常に簡単ではないためです。QObject::deleteLaterむしろ、この目的のために設計されたスロットを使用してください。

CustomWidget *widget; //defined as private

widget = new CustomWidget(this);
connect(widget,SIGNAL(onCLose(), widget, SLOT(deleteLater()));

widget = new CustomWidget(this);
connect(widget,SIGNAL(onCLose(), widget, SLOT(deleteLater()));

widget = new CustomWidget(this);
connect(widget,SIGNAL(onCLose(), widget, SLOT(deleteLater()));
于 2013-05-16T22:01:48.393 に答える