pyqt: empfangen eines Signals, wenn ein widget sichtbar/versteckt
Ich es mitbekommen habe ist es kein signal/Ereignis, wenn sich ein QWidget sichtbar/unsichtbar. Gibt es noch etwas anderes kann ich Haken zu bekommen in etwa das gleiche (außer polling isVisible())?
Ich möchte einige Daten abrufen, wenn das widget zeigt, dass die Daten nicht sichtbar.
Beachten Sie, dass während der Basisklasse QWidget nicht ein signal für diese, werden Sie finden, es gibt für einige andere Klassen. QWindow hat visibleChanged zum Beispiel...während QDockWidget hat die seltsam-etwas-anderen-Namen visibilityChanged.
Ich denke, QWindow verwendet visibleChanged für das signal, das entspricht
Ich denke, QWindow verwendet visibleChanged für das signal, das entspricht
isVisible()
Zustand-änderungen, da es auch hat eine QWindow::visibilityChanged, der seinen (nicht verwandten) visibility
Eigenschaft. QWindow::Sichtbarkeit eingeführt wurde in QT 5.1, QDockWidget::visibilityChanged geht zurück auf Qt 4.3. Denke, dass Sie bedauerte, nicht die Namensgebung visibleChanged von Anfang an. (In der Erwägung, dass MEINE bedauern wäre, dass visible
und visibility
jetzt bedeutet zwei verschiedene Dinge in der gleichen Klasse.)InformationsquelleAutor Rolle | 2012-06-07
Du musst angemeldet sein, um einen Kommentar abzugeben.
One-Lösung ist, können Sie überschreiben
QWidget::showEvent()
undQWidget::hideEvent()
Funktion in Ihrem widget (Dokumentation). Und dannemit
Sie benutzerdefiniertesignal
und fangen Sie in einemslot
im jeweiligen Objekt. Zum Beispiel..Nun, wenn Sie nicht überschreiben Ihre widget, erhalten Sie auch über Ereignisse in seinem Eltern-widget mit
QObject::installEventFilter ( QObject * filterObj )
undQObject::eventFilter ( QObject * watched, QEvent * event )
Kombination (Dokumentation und Beispiel).InformationsquelleAutor Ammar