私は多くのウィンドウ(QWidgets)を持つアプリケーションを持っています。 開いているウィンドウのリストは保存しませんでしたので、ウィンドウを閉じるたびに取得する必要があります。"this"をQ_Slotに渡すことはできますか?
特に、これらのウィンドウのそれぞれはSubWindowと呼ばれます。 すべてのSubWindowクラスには、MultiEditor * sEditorsを含むレイアウトが含まれています.Editorsには、現在のウィンドウを閉じるアクションを含むメニューがあります。 すべてのSubWindowは、MainWindow内で作成されます。
私には2つの計画があります。 1)サブウィンドウコンストラクタに
connect(sEditors, SIGNAL(closeWindow()),
main, SLOT(closeWindow(this)));
を添加することにより、メインウィンドウのクラスの中からサブウィンドウ破壊)サブウィンドウコンストラクタに
connect(sEditors, SIGNAL(closeWindow()),
this, closeWindow()));
又は
2を添加することにより、自身の中からサブウィンドウ破壊
約1)、私は自分自身からQWidgetを閉じて破壊する方法を理解していません(これを削除してください;は動作していませんでしたが、もう一度やり直すことができます)。
約2)私のSLOT(closeWindow(this))はトリガーされていないようですので、 "this"を引数として渡すことができますか?
私deleteLater)が働いていないされていません。私はcloseWindow()内でそれをトリガーし、私のQWidgetは残っています - >それは消えません。 –
間違ったウィジェットを閉じる/削除/隠しているようですが、閉じる()[またはthis-> close()]またはhide()[this-> hide()]を記述してもQWidgetは消えません。 'this'があなたのデバッガであなたのスロットの正しいオブジェクトを指していることを確認してください –
非常に、ありがとう! –