0

こんにちは私はQTを学んでいて、私は理解できない何かに出くわしました。そのようなウィジェットを作成するのはなぜですか

widget = new Widget(this);

widget->show();ウィジェットは表示されませんが、「this」を省略した場合、つまり

widget = new widget();

表示されますか?さらに、私は子供から親のメソッドの1つを呼び出すことができる必要があり、thisその作成を渡すことによって子供の患者を設定しない限り、これを行うことはできません。

4

1 に答える 1

0

ウィジェットは表示されます。ただし、独自のウィンドウではなく、メイン ウィンドウの一部として表示されます。もちろん、作成しているウィジェットにコンテンツが含まれていない場合は、あまり表示されません。これは、次のような方法でテストできます。

widget = new QTextEdit(this);
widget->show();

ウィジェットを常に独自のウィンドウに表示したい場合は、ウィジェットを QWidget ではなく QDialog から継承する必要があります。または、これをしたくない (またはできない) 場合はQt::Window、ウィジェットを作成するときにウィンドウ フラグを設定する必要があります。

widget = new Widget(this, Qt::Window);
于 2012-12-07T14:41:33.223 に答える