2009-07-19 3 views

risposta

3

Tecnicamente, qualsiasi widget inizializzato con NULL è un widget di livello superiore, quindi QApplication non dovrebbe presupporre che uno di essi sia migliore di un altro.
Il modo in cui di solito lo faccio è di salvare un puntatore sul widget principale "reale" da qualche parte, anche una variabile globale o un singleton e di riferirlo quando necessario.

2

Penso che il numero topLevelWidgets() sia il più vicino possibile.

Modifica:

Sì. Qt4 ha aggiunto complessità (e potenza). Non c'è più MainWidget dell'applicazione larga. Molte QMainWindows possono essere create e mostrate, nascoste e mostrate di nuovo. Questa è una buona cosa, però :) Come notato da shoosh, il comportamento QT3 può essere facilmente simulato con una sottoclasse di variabili globali (yuck!) O QApplication.

+0

Sì, ho visto questo metodo. Ma sembrava un passo nella direzione sbagliata dal momento che aggiunge complessità. Questo è finora l'unico caso in cui ritengo che il Qt3 sia migliore del Qt4, ed è per questo che ho dovuto chiedere. Lascerò la domanda aperta un po 'più a lungo, ma se nessuno riuscirà a fare qualcosa di meglio accetterò la tua risposta. Grazie .. – Kristian

+0

Bene, puoi sempre tenere traccia del "widget principale" da solo, a seconda della tua app. – Eugene

1

Penso che quello che stai cercando sia stato sostituito dalla classe QMainWindow, che ti permette di impostare un widget centrale con set e get.