Hallo, On Sat, 15 Mar 2003, Holger Macht wrote:
Am Samstag, 15. März 2003 15:33 schrieb David Haller:
On Sat, 15 Mar 2003, Holger Macht wrote:
wie kann ich es erreichen, dass ich auf das MainWIdget von anderen Fenstern , dass in main.cpp mit a.setMainWidget(...) festgelegt wurde, zugreifen kann.
RTFM: qwidget
Habe ich getan ...
If the widget is a top-level, the widget itself is returned. ...
Genau das ist das Problem. Der Returnwert ist NULL bei mir. Ich will ja von einem TopLevelWidget auf das a.setMainWidget zugreifen.
Aehm, von wo aus rufst du denn das neue Fenster auf? Na? ;)) Mach in der Funktion / dem Callback in dem du das neue Fenster aufmachst einfach ein this.topLevelWidget()->hide(); neues_fenster->show(); oder sowas aehnliches. (ob this richtig ist weiss ich nicht, ich habe mir vor Urzeiten QT(1) nur mal angeschaut... Du koenntest auch dem neuen Fenster das MainWindow als Referenz/Zeiger uebergeben, dann kannst du darueber dann zugreifen, dazu kannst du z.B. die von der Klasse des jetzigen Fensters ableiten und einfach noch ne private Variable hinzufuegen. class myWindow : public QMainWindow { private: QMainWindow * app_toplevel_window; public: myWindow(QMainWindow * appw) : QMainWindow() { app_toplevel_window = appw; } /* ... */ this.app_toplevel_window->hide(); } Achtung: ich habe keine Ahnung ob/wie obiges funktioniert -- das ist einfach nur so mal hingetippt. Insbesondere musst du wohl den Konstruktor noch ausbauen.
Typical usage is changing the window caption:
aWidget->topLevelWidget()->setCaption( "New Caption" );
verstehe nicht ganz, was das damit zu tun hat.
Das demonstriert, wie man aus einem child-widget auf Methoden des Topwidgets zugreifen kann... -dnh -- IMHO: "In meinem humpelnden Oberstübchen" ((c) Gerd Hölscher).