Legenden mindestens so breit wie das Kartenschild (#96)
Standard- und Mindestbreite der Haupt- und Basemap-Legende ist die Breite des Kartenschilds (180 mm, MIN_SPALTENBREITE_MM) – die zunächst genannten 210 mm sind der gesamte Kartenrand einschließlich Abständen. Die Legenden passen sich weiter ihrem Inhalt an, werden aber nie schmaler (setMinimumSize). QGIS speichert die Mindestgröße nicht im Projekt; nach dem Neuladen schrumpfte die Legende bei der nächsten Größenanpassung wieder (QGIS-Test: 43,7 mm). Deshalb vermerkt das Layout die Mindestbreite (sn_legende_mindestbreite), und ein Listener auf readProject setzt sie beim Laden wieder (setup/teardown_mindestbreiten_listener in main.py, wie der Verfahrensgebiet-Listener). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -40,7 +40,7 @@ from sn_basis.functions.qgiscore_wrapper import (
|
||||
QgsVectorLayer,
|
||||
)
|
||||
from sn_basis.functions.qt_wrapper import QSize
|
||||
from sn_basis.modules.print_kartenrand import TEXTUMBRUCH_MM
|
||||
from sn_basis.modules.print_kartenrand import MIN_SPALTENBREITE_MM, TEXTUMBRUCH_MM
|
||||
|
||||
MM = QgsUnitTypes.LayoutMillimeters
|
||||
|
||||
@@ -332,6 +332,8 @@ def _neues_legendenelement(layout: Any) -> Any:
|
||||
_aufruf(legende, "setFrameEnabled", True)
|
||||
_aufruf(legende, "setBackgroundEnabled", False)
|
||||
_aufruf(legende, "setFrameStrokeWidth", _layout_messung(RAHMENSTAERKE_MM))
|
||||
# Mindestens so breit wie das Kartenschild (Basis #96)
|
||||
_aufruf(legende, "setMinimumSize", QgsLayoutSize(MIN_SPALTENBREITE_MM, 0.0, MM))
|
||||
layout.addLayoutItem(legende)
|
||||
return legende
|
||||
|
||||
|
||||
Reference in New Issue
Block a user