GIMP-Forum 3.0

GIMP-Forum 3.0 (http://www.gimpforum.de/index.php)
-   Skripte (http://www.gimpforum.de/forumdisplay.php?f=27)
-   -   Im register Bereich Feld Abfrage. Wenn Feld gefuellt, weiter, wenn nicht, zurueck. (http://www.gimpforum.de/showthread.php?t=23625)

Gutschy 08.10.2017 03:14

Im register Bereich Feld Abfrage. Wenn Feld gefuellt, weiter, wenn nicht, zurueck.
 
Hallo Leute,

mein Problem ist simpel. Ich habe in Gimp ein Formular mit vielen Feldern auszufuellen. Und beim Ausfuellen habe ich oft das Pech die Return-Taste zu druecken. Das Skript bricht dann ab weil noch nicht alle Eingaben gemacht wurden und die bereits gemachten Eingaben (wenn es schlecht laeuft 16 Felder) sind dann auch futsch. Gibt es einen Weg bei dem Absenden des Skriptes vorher die Felder auf Inhalte zu pruefen.

Ich habe auch versucht Tkinter und die tkMessageBox einzubauen, aber beim Import der Bibliotheken war es schon vorbei. Habe auch von Python nur so rudimentär Ahnung.

Ich glaube ich auch eine Abfrage des Feldinhaltes in der Funktion die register aufruft ist schon eine Stufe zu spaet, weil, selbst wenn der Feldinhalt noch nachgetragen werden kann, ist es fuer die anderen Felder schon zu spaet.

Oder kann man in python-fu einen Button einbauen, also wenn alle Felder ausgefuellt, dann OK druecken und ab geht es.

Wie gesagt, mit meiner Grobmotorik schaffe ich es immer wieder die Return-Taste zu frueh zu druecken.

Gruesse,

gutschy

PeterPKHG 08.10.2017 08:19

Ohne Script kann ich dir nicht helfen ;)

Gutschy 08.10.2017 12:39

Hallo Peter,

ja, das hast du ein schlagendes Argument aufgeführt. :roll:
Im Anhang mal das Skript.

PeterPKHG 10.10.2017 11:17

Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:

Zitat von Gutschy (Beitrag 158969)
Hallo Peter,

ja, das hast du ein schlagendes Argument aufgeführt. :roll:
Im Anhang mal das Skript.

Ahh, kapiert, hast die Eingabe-Daten über die Plugin-Parameter gemacht ;)

Da weiß ich (noch) nicht was man da machen kann.

ABER, man kann selbst Masken erstellen! Siehe Bild, und man hat darüber 100% Kontrolle ...
Anhang 6098
Man wuerde z.B. ganz unten einen Button: NUN verarbeitern oder so einfuegen ;-)

Gutschy 10.10.2017 11:56

Hi Peter,

danke fuer deine Antwort. Das mit dem Button ist genau das was ich suche. Leider waere ich mit einem Einbau schon wieder ueberfordert. Allerdings habe ich es gerade auch erst geschaft Tkinter in das Skript einzubinden. tkMessageBoard geht anscheinend nicht. Aber gut, jetzt einfach mal ein paar Tutorials reinziehen und ich komm schon dahinter. Du hast aber nicht zufaellig noch ein Beispiel Skript rumliegen, also irgendwas was mir dem Mechanismus verdeutlichen koennte?

Gruss,

gutschy

schumaml 10.10.2017 16:12

Nur mal so als Hinweis: die eigentliche Oberfläche von GIMP ist GTK+, welches in Python über pygtk bereitgestellt wird und mit fertigen Paketen von GIMP auch mitkommt.

Hier mit Tkinter zu basteln bringt eine zusätzliche UI-Bibliothek mit ins Spiel, und zwei unterschiedliche UI-Bibliotheken in einem Projekt vervierfachen üblicherweise die Anzahl möglicher Fehlerquellen :)

Die eigentliche Lösung wäre hier eher, von der vereinfachten, Script-Fu-artigen Schnittstelle weg zu einer in GTK+ erstellen Oberfläche für ein richtiges, python-basiertes Plug-in zu gehen.

PeterPKHG 10.10.2017 17:26

Liste der Anhänge anzeigen (Anzahl: 1)
Schumaml, stimmt,
Pygtk nutzen fuer plugins, ist ERST ziemlich muehsam, aber wenn man (langsam aber sicher) weiter kommt, dann ist es langsam immer besser

Im Script fängt es an mit
import gtk

Probier dies mal aus Anhang 6099
Da siehst du, wie ich in der Python Console von gimp 'gebastelt' habe.

Wenn die Zeit reicht probier ich dein Plugin 'umzuwandeln' ...

EDIT:
man muss halt pygtk lernen, Schritt für Schritt!
Aber hat man erst einmal kapier wie man Text-Eingabe und Buttons und
Wahllisten baut ... ist man schon schön weit.
Dein Beispiel ist leider ein bisschen lang ... ;-)

EDIT EDIT
Such mal hier im Forum nach guide und guidelab , da sind schon Beiträge von mir über gtk zu finden

Gutschy 10.10.2017 23:49

Erstmal Danke an euch beide fuer eure Unterstuetzung.

Der Witz ist das GTK schon lange auf meiner Liste von Baustellen steht. Allerdings wollte ich da erst mit C drauf einsteigen, aber egal.

Macht es Sinn mit diesem Tutorial damit anzufangen, ist halt noch von 2006?
http://www.pygtk.org/pygtk2tutorial/index.html Und ich glaube die lassen das Teil nur auf Linux laufen. Was so zwar kein Problem ist, aber ich hasse virtuelle Maschinen und das Geld fuer eine SSD die Platz fuer Dualboot hat ist gerade knapp.

Peter falls du wirklich den Nerv finden solltest mein Skript umzuwandeln, mach ruhig.:p weil PyGTK wird mich wohl bestimmt ein Jahr beschaeftigen wird, nach dem Tut zu urteilen. Aber vielleicht spare ich mir auch dieses mal wirklich alles abzutippen.

Kannst du mir noch ein paar Stichwoerter geben zum Thema Installation und Tutorials geben, das wäre wohl bestimmt hilfreich.

Kann ich hiermit starten?http://www.pygtk.org/downloads.html


Gruesse,

gutschy

schumaml 11.10.2017 00:18

Zitat:

Zitat von Gutschy (Beitrag 158995)
Und ich glaube die lassen das Teil nur auf Linux laufen.

Du hast GIMP, du hast darin Python-Unterstützung, und du hast damit auch pygtk. Also ist alles vorhanden, um ein Plug-in in Python mitselbst erstellter Oberfläche zu machen.

Ein Beispiel für ein spolches ist z.B. die Python-Konsole von GIMP selbst:
https://git.gnome.org/browse/gimp/tr....py?h=gimp-2-8

Diese hat zwar über das gimpfu-Modul auch ein register(...), lässt sich aber davon keine vereinfachte Oberfläche a la Script-Fu bauen, sondern übernimmt dies in der Funktion do_console selbst:

https://git.gnome.org/browse/gimp/tr...h=gimp-2-8#n28

Neben der Tatsache, dass damit dann der komplette Umfang von GTK+ zur Gestaltung der Oberfläche verfügbar ist, kann dann auch eine eigene Funktion festgelegt werden, die bei der Bestätigung eines der Buttons (Ok, Abbrechen, usw) ausgeführt wird und prüft, welcher denn betätigt wurde.

Das ist hier die Funktion response:

Zuweisung zum Dialog:
https://git.gnome.org/browse/gimp/tr...h=gimp-2-8#n70

und

Definition von response:
https://git.gnome.org/browse/gimp/tr...h=gimp-2-8#n87

Das wäre in deinem Code dann die Stelle, an der du die Vollständigkeit der Eingabe prüfst und dann ggf. - außer einer Informationsmeldung, oder einer Hervorhebung der fehlenden Felder, usw. - einfach nichts machst.

Gutschy 11.10.2017 11:58

schumaml, danke fuer die Code-Beispiele. Wie gesagt mein python ist leider immer noch auf Anfaenger Niveau, auf der anderen Seite habe ich aber auch schon einiges woanders gelernt, allerdings mehr so quer durch den Garten.

Ich habe jetzt im Tutorial das erste Fenster erzeugt, also wird der Rahmen schon mal hoffentlich stimmen.

Na dann werde ich mal lernen. :p

Noch mal Danke fuer eure Hilfe!!!

Gruss,

gutschy


Alle Zeitangaben in WEZ +2. Es ist jetzt 04:19 Uhr.

Powered by vBulletin® Version 3.8.2 (Deutsch)
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.