On Thu, Dec 06, 2001 at 10:14:05AM +0100, Heiko Schlittermann wrote:
On Wed, Dec 05, 2001 at 08:13:43PM +0100, Andre Schulze wrote:
Moin,
ich habe hier mal ne Frage an die Qt Experten: warum sind Widgets nicht sichtbar, die als Objekt definiert wurden, wohingegen mittels des new Operators erzeugte Widgets sichtbar sind?
Widgets als Objekt zu definieren, ist keine sehr gute Idee, es geht vielleicht nocht mit einigen TOP-Level-Widgets. Denn am Ende rufen alle Widgets ein "delete this;" auf, und das geht bei Widgets, die nicht auf dem Heap liegen, daneben ...
Du kannst ein QWidget auch auf dem Stack erzeugen, es muss nur von dort verschwunden sein, bevor der Destruktor seines parentWidget() aufgerufen wird... Beispiel:
switch (pm.exec(QCursor::pos())) { case 1: { // wird erzeugt QDialog dlg(this, "colordlg", true); dlg.exec();
// wird zerstört } break; case 2: ...
Ciao, Tobias