So, nun noch einmal zum Helfen.gahleitner hat geschrieben:Gibt es eine Doku über die PF_ Module und deren Definitionen?
...
Kannst du mir helfen?
Was verstehst Du unter Hilfe?
Nur aufzeigen, wie man etwas schreiben könnte, bringt ja nichts, wenn der andere am Ende nicht versteht, warum es so geschrieben werden könnte. Zum Verstehen gehören Grundkenntnisse in Python und zu diesen Grundkenntnissen wiederum gehören z.B. die wichtigsten Datentypen, wie String, Integer, Floot oder Bool und die stehen in jedem für Einsteiger geeigneten Buch recht weit vorn. Wenn man diese aber kennt, ist es einfach in der gimpfu.py nachzulesen, zu welchem Datentyp eine für die Parameterübergabe gebräuchliche Konstante gehört, insofern sich das nicht bereits aus dem Namen einer Konstanten ableiten lässt.
Wo die gimpfu.py bei Dir liegt, bekommst Du heraus, in dem Du in der Python-Fu Konsole einfach nur
[codebox=pycon file=Unbenannt.txt]import gimpfu
help(gimpfu)[/code]
eingibst, der Pfad zur Datei wird mit aufgeführt. Beispiel:
[codebox=pycon file=Unbenannt.txt]>>> import gimpfu
>>> help(gimpfu)
Help on module gimpfu:
NAME
gimpfu - Simple interface for writing GIMP plug-ins in Python.
FILE
c:\program files\gimp 2\32\lib\gimp\2.0\python\gimpfu.py[/code]
Die Konstanten plus Datentypen werden in den Dictionaries "_type_mapping" und "_obj_mapping" aufgeführt. Weiterhin sollte man die Beschreibung in der gimpfu.py mindestens einmal gelesen haben. Nun weiß ich nicht, wie Deine Englischkenntnisse sind, ich muss mir alles was wichtig ist zumindest erst einmal von Google übersetzen lassen, doch meisten sind die Übersetzungen verständlich genug.
Beispiel aus der gimpfu.py
[codebox=text file=Unbenannt.txt]You can use any of the PF_* constants below as parameter types, and anappropriate user interface element will be displayed when the plug-in is run in interactive mode. Note that the the PF_SPINNER and PF_SLIDER types expect a fifth element in their description tuple -- a 3-tuple of the form (lower,upper,step), which defines the limits for the slider or spinner.[/code]
Übersetzung mit Google:
[codebox=text file=Unbenannt.txt]Sie können eine beliebige der folgenden PF_ * Konstanten als Parametertypen verwenden und ein passendes Benutzerschnittstellenelement wird angezeigt, wenn das Plug-In im interaktiven Modus ausgeführt wird. Beachten Sie, dass die PF_SPINNER- und PF_SLIDER-Typen ein fünftes Element in ihrem Beschreibungstupel erwarten - ein 3-Tupel des Formulars (unten, oberer, Schritt), der die Grenzen für den Schieberegler oder den Spinner definiert.[/code]
Die zweite Quelle für Konstanten und anderes wäre dann diese bereits oft verlinkte Seite:
https://www.gimp.org/docs/python/
Die habe ich mir gleich zweisprachig ausgedruckt. Das hat dann zwar etwas länger als eine Stunde gedauert, weil ich die Übersetzungen absatzweise einfügte und die englischen Texte dabei etwas ausgraute, doch dafür habe ich etwas zu liegen, mit dem man gut arbeiten kann.
Aus dem Original:
[codebox=text file=Unbenannt.txt]These values map onto the standard PARAM_* constants. The reason to use the extra constants is that they give gimpfu more information, so it can produce a better interface (for instance, the PF_FONT type is equivalent to PARAM_STRING, but in the GUI you get a small button that will bring up a font selection dialog).
The PF_SLIDER, PF_SPINNER and PF_ADJUSTMENT types require the extra parameter. It is of the form (min, max, step), and gives the limits for the spin button or slider.
The results parameter is a list of 3-tuples of the form (type, name, description). It defines the return values for the function. If there is only a single return value, the plugin function should return just that value. If there is more than one, the plugin function should return a tuple of results.[/code]
Übersetzung mit Chrome ist etwas gebrochenes, dennoch verständliches Deutsch:
[codebox=text file=Unbenannt.txt]Diese Werte werden auf die Standard-PARAM_ * -Konstanten abgebildet. Der Grund, die zusätzlichen Konstanten zu verwenden, ist, dass sie gimpfu mehr Informationen geben, also kann es eine bessere Schnittstelle produzieren (zum Beispiel ist der PF_FONT-Typ äquivalent zu PARAM_STRING, aber in der GUI bekommst du eine kleine Schaltfläche, die eine Schriftartauswahl hervorbringt Dialog).
Die Typen PF_SLIDER, PF_SPINNER und PF_ADJUSTMENT benötigen den zusätzlichen Parameter. Es ist von der Form (min, max, step), und gibt die Grenzen für die Spin-Taste oder Schieberegler.
Der Ergebnisparameter ist eine Liste von 3-Tupeln des Formulars (Typ, Name, Beschreibung). Sie definiert die Rückgabewerte für die Funktion. Wenn es nur einen einzigen Rückgabewert gibt, sollte die Plugin-Funktion nur diesen Wert zurückgeben. Wenn es mehr als eins gibt, sollte die Plugin-Funktion ein Tupel von Ergebnissen zurückgeben.[/code]
Dann noch eine dritte Quelle, zwar in Scheme beginnend mit SF- und nicht mit PF_, doch dafür in deutscher Sprache und mit richtiger Beschreibung, so dass nur kleinere Anpassungen erforderlich sind:
https://docs.gimp.org/de/gimp-using-scr ... cript.html
Dann allgemein etwas zu den Beispielen, die sind alle gut und schön und die Leistung von den jeweiligen Script-Autoren sollte durchaus anerkannt werden. Nur die Beispiele sind halt in die Jahre gekommen und man sollte sich halt die "PEP 8 - Style Guide for Python Code" einmal durchlesen und eigene Scripts dann danach ausrichten. Auf der Vorseite verlinkt und auf dieser Seite übernimmst Du bereits wieder ein Beispiel mit Sternchenimport und Variablen in camelCase-Schreibweise, statt diese gleich zu korrigieren. Irgendwie so, als hättest Du Dir die Seite nicht einmal angeschaut, wo sich doch vieles bereits ohne zu lesen aus "Yes:" und "No:" ergibt.
Also, helfen ja, doch Hilfe ist auch darauf zu verweisen, wo sich Erklärungen und Lösungen befinden, statt diese nur wiedergeben zu wollen. Und da wurde bereits auf sehr vieles verwiesen, würde ich meinen.