QWidget als Parameter in Funktion übergeben
Verfasst: 12. März 2011 17:53
Ich beschreibe mein Problem am besten direkt an Hand einer vereinfachten Form meines Codes.
Auszug aus meinem MainWindow
Im MainWindow Konstruktor erstelle ich das DockWidget neu
Der Inhalt der initDockWidget sieht so aus
An anderer Stelle (zum Beispiel beim Druck auf einem Button) möchte ich das Widget sichtbar machen
Inhalt der toggleVisibility
Sobald "widget->show()" aufgerufen wird, stürzt meine App ab mit folgender MessageBox:
Ich denke, dass ich bei der Übergabe des Pointers auf das DockWidgets in die toggle-Funktion etwas falsch mache, denn, wenn ich in der "initDockWidget" nach dem "hide()" die Methode "isVisible()" aufrufe, bekomme ich ein "false" zurück.
Rufe ich "isVisible" aber in der "toggleVisibility()" vor dem "show()" auf, bekomme ich ein "true" zurück.
Bitte um Hilfe.[/code]
Auszug aus meinem MainWindow
Code: Alles auswählen
QDockWidget *m_meinWidget;
void initDockWidget(QDockWidget *widget, QString sTitle);
void toggleVisibility(QDockWidget *widget, bool bSwitch);
Code: Alles auswählen
initDockWidget(m_meinWidget, "Titel");
Code: Alles auswählen
widget = new QDockWidget(this, sTitle);
widget->hide();
Code: Alles auswählen
toggleVisibility(m_meinWidget, "true");
Code: Alles auswählen
if (bSwitch == "true")
widget->show();
else
widget->hide();
Ich hab zwar schon im meinem QT Buch das Kapitel "Speicherverwaltung von Objekten" durchgelesen, weiß aber trotzdem nicht, was ich hätte anders machen sollen.Der Prozess wurde nach Erhalt eines Signals vom Betriebssystem angehalten.
Name des Signals: SIGSEGV
Bedeutung: Segmentation fault
Ich denke, dass ich bei der Übergabe des Pointers auf das DockWidgets in die toggle-Funktion etwas falsch mache, denn, wenn ich in der "initDockWidget" nach dem "hide()" die Methode "isVisible()" aufrufe, bekomme ich ein "false" zurück.
Rufe ich "isVisible" aber in der "toggleVisibility()" vor dem "show()" auf, bekomme ich ein "true" zurück.
Bitte um Hilfe.[/code]