Festlegen der Breite des Ebenenbedienfelds in QGIS?

11

Wenn ich QGIS öffne, wird im Ebenenbedienfeld standardmäßig eine Breite angezeigt, in der die Schaltfläche "Ebene / Gruppe entfernen" nicht angezeigt wird. Daher muss ich die Größe des Bedienfelds ändern, um die Schaltfläche jedes Mal anzuzeigen, wenn ich QGIS öffne.

Ist es möglich, eine Standardbreite für dieses Bedienfeld festzulegen, damit ich die Größe nicht ändern muss?

Ich verwende QGIS 2.18.5 unter Windows 10.

Balex
quelle
Ich füge ein weiteres Bedienfeld hinzu (in meinem Fall Advanced Digitalizing Tool oder Value Tool). Einige dieser Paneele versuchen, ihre Breite beizubehalten. Aber ich stimme zu, wäre schön, wenn eine Standardbreite eingestellt werden kann.
Kazuhito
Es wäre schön, wenn sich das Projekt daran erinnert, aber Sie benötigen diese Schaltfläche nicht, da die Funktion über das Popup-Menü mit der rechten Maustaste verfügbar ist, sodass keine Größenänderung erforderlich ist (dh genau die gleiche Anzahl von Schaltflächenklicks). eine auf der Schicht und eine zum Entfernen). Wenn Sie die Schaltfläche weiterhin verwenden möchten, müssen Sie die Größe nicht ändern, da Sie auf die Schaltfläche >> am Rand des Fensters klicken können und alle ausgeblendeten Schaltflächen in einem Popup angezeigt werden (dies gilt für alle QGIS-Menüs).
MappaGnosis

Antworten:

11

Mit etwas Python können wir ein Startup.py- Skript erstellen, das die Breite des Ebenenbedienfelds mithilfe der folgenden Schritte festlegt:

from qgis.utils import iface
from PyQt4.QtGui import QDockWidget

for x in iface.mainWindow().findChildren(QDockWidget): 
    if x.objectName() == 'Layers':
        x.setFixedWidth(250)
        x.setMinimumWidth(100)
        x.setMaximumWidth(1000)

Speichern Sie das Skript in Ihrem /.qgis2/python/Verzeichnis. Wenn Sie jetzt QGIS laden, wird die Breite des Ebenenbedienfelds entsprechend festgelegt.

Joseph
quelle
1
Danke Joseph, das ist eine gute Lösung. Ich habe jedoch festgestellt, dass das Festlegen einer niedrigeren Mindestbreite nach der festen Breite die feste Breite überflüssig macht. Für meine Zwecke habe ich also nur x.setMinimumWidth (250) verwendet. 250 war die magische Zahl für mich. Dadurch konnte ich das Panel bei Bedarf immer noch breiter machen.
Balex
@balex - Herzlich willkommen, froh, dass es geholfen hat! Komisch, wenn ich entferne setFixedWidth, ändert sich die Größe nicht entsprechend. Vielleicht, weil ich 2.18.2 benutze, aber zumindest funktioniert es für Sie :)
Joseph