Programmgesteuertes Ein- und Ausschalten von Bedienfeldern mit PyQGIS

10

In QGIS right-clickkönnen Bedienfelder an einer beliebigen Stelle im Symbolleistenbereich ein- und ausgeschaltet werden, wie im folgenden Screenshot gezeigt (z. B. im GPS-Informationsbereich).

Geben Sie hier die Bildbeschreibung ein

Ich muss dies programmgesteuert tun. Wie kann ich die Bedienfelder von PyQGIS aus ein- und ausschalten? Ich fand, dass die QgsInterfaceKlasse einige addDockWidgetund removeDockWidgetMethoden hat, aber ich konnte wirklich nicht herausfinden, ob dies der richtige Weg ist, um dies zu erreichen ...

Jochen Schwarze
quelle

Antworten:

11

Diese Panels sind QDockWidgets . Wir können nach ihnen suchen objectNamesund, wenn sie übereinstimmen, ihre Sichtbarkeit auf einstellen False(dh sie ausblenden).

Für das GPS-Informationspanel können Sie also Folgendes verwenden:

from PyQt4.QtGui import QDockWidget
for x in iface.mainWindow().findChildren(QDockWidget):
    #print x.objectName()
    if x.objectName() == 'GPSInformation':
        x.setVisible(False)
Joseph
quelle