forked from AG_QGIS/Plugin_SN_Basis
45 lines
1.4 KiB
Python
45 lines
1.4 KiB
Python
|
|
# sn_basis/functions/messages.py
|
||
|
|
|
||
|
|
from typing import Optional
|
||
|
|
from qgis.core import Qgis
|
||
|
|
from qgis.PyQt.QtWidgets import QWidget
|
||
|
|
from qgis.utils import iface
|
||
|
|
|
||
|
|
|
||
|
|
def push_message(
|
||
|
|
level: Qgis.MessageLevel,
|
||
|
|
title: str,
|
||
|
|
text: str,
|
||
|
|
duration: Optional[int] = 5,
|
||
|
|
parent: Optional[QWidget] = None,
|
||
|
|
):
|
||
|
|
"""
|
||
|
|
Zeigt eine Meldung in der QGIS-MessageBar.
|
||
|
|
- level: Qgis.Success | Qgis.Info | Qgis.Warning | Qgis.Critical
|
||
|
|
- title: Überschrift links (kurz halten)
|
||
|
|
- text: eigentliche Nachricht
|
||
|
|
- duration: Sekunden bis Auto-Ausblendung; None => bleibt sichtbar (mit Close-Button)
|
||
|
|
- parent: optionales Eltern-Widget (für Kontext), normalerweise nicht nötig
|
||
|
|
Rückgabe: MessageBarItem-Widget (kann später geschlossen/entfernt werden).
|
||
|
|
"""
|
||
|
|
bar = iface.messageBar()
|
||
|
|
# QGIS akzeptiert None als "sticky" Meldung
|
||
|
|
return bar.pushMessage(title, text, level=level, duration=duration)
|
||
|
|
|
||
|
|
|
||
|
|
def success(title: str, text: str, duration: int = 5):
|
||
|
|
return push_message(Qgis.Success, title, text, duration)
|
||
|
|
|
||
|
|
|
||
|
|
def info(title: str, text: str, duration: int = 5):
|
||
|
|
return push_message(Qgis.Info, title, text, duration)
|
||
|
|
|
||
|
|
|
||
|
|
def warning(title: str, text: str, duration: int = 5):
|
||
|
|
return push_message(Qgis.Warning, title, text, duration)
|
||
|
|
|
||
|
|
|
||
|
|
def error(title: str, text: str, duration: Optional[int] = 5):
|
||
|
|
# Fehler evtl. länger sichtbar lassen; setze duration=None falls gewünscht
|
||
|
|
return push_message(Qgis.Critical, title, text, duration)
|