Forum Wiki Galerie Kontakt Wie man Fragen richtig stellt. Tutorial Forum
Zurück   GIMP-Forum 3.0 > Arbeiten mit Gimp > GIMP-Ressourcen > Skripte

Hinweise
Alt 08.10.2017, 03:14   #1
Gutschy
Benutzer
 
Registriert seit: 21.12.2005
Beiträge: 33
Standard 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
Gutschy ist offline   Mit Zitat antworten
Alt 08.10.2017, 08:19   #2
PeterPKHG
Erfahrener Benutzer
 
Registriert seit: 20.07.2016
Beiträge: 498
Standard

Ohne Script kann ich dir nicht helfen
PeterPKHG ist offline   Mit Zitat antworten
Alt 08.10.2017, 12:39   #3
Gutschy
Benutzer
 
Registriert seit: 21.12.2005
Beiträge: 33
Standard

Hallo Peter,

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

Geändert von Gutschy (15.10.2017 um 00:31 Uhr)
Gutschy ist offline   Mit Zitat antworten
Alt 10.10.2017, 11:17   #4
PeterPKHG
Erfahrener Benutzer
 
Registriert seit: 20.07.2016
Beiträge: 498
Standard

Zitat:
Zitat von Gutschy Beitrag anzeigen
Hallo Peter,

ja, das hast du ein schlagendes Argument aufgeführt.
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 ...
Klicke auf die Grafik für eine größere Ansicht

Name:	eingabemasken.jpg
Hits:	18
Größe:	45,7 KB
ID:	6098
Man wuerde z.B. ganz unten einen Button: NUN verarbeitern oder so einfuegen
PeterPKHG ist offline   Mit Zitat antworten
Alt 10.10.2017, 11:56   #5
Gutschy
Benutzer
 
Registriert seit: 21.12.2005
Beiträge: 33
Standard

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
Gutschy ist offline   Mit Zitat antworten
Alt 10.10.2017, 16:12   #6
schumaml
Erfahrener Benutzer
 
Benutzerbild von schumaml
 
Registriert seit: 21.01.2004
Ort: Leinfelden
Beiträge: 6.719
Standard

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.
schumaml ist offline   Mit Zitat antworten
Alt 10.10.2017, 17:26   #7
PeterPKHG
Erfahrener Benutzer
 
Registriert seit: 20.07.2016
Beiträge: 498
Standard

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 Klicke auf die Grafik für eine größere Ansicht

Name:	MyMessageGTK.jpg
Hits:	17
Größe:	104,6 KB
ID:	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

Geändert von PeterPKHG (10.10.2017 um 17:33 Uhr) Grund: extra info
PeterPKHG ist offline   Mit Zitat antworten
Alt 10.10.2017, 23:49   #8
Gutschy
Benutzer
 
Registriert seit: 21.12.2005
Beiträge: 33
Standard

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. 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
Gutschy ist offline   Mit Zitat antworten
Alt 11.10.2017, 00:18   #9
schumaml
Erfahrener Benutzer
 
Benutzerbild von schumaml
 
Registriert seit: 21.01.2004
Ort: Leinfelden
Beiträge: 6.719
Standard

Zitat:
Zitat von Gutschy Beitrag anzeigen
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.
schumaml ist offline   Mit Zitat antworten
Alt 11.10.2017, 11:58   #10
Gutschy
Benutzer
 
Registriert seit: 21.12.2005
Beiträge: 33
Standard

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.

Noch mal Danke fuer eure Hilfe!!!

Gruss,

gutschy
Gutschy ist offline   Mit Zitat antworten
Antwort

Lesezeichen

Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist An.
Smileys sind An.
[IMG] Code ist An.
HTML-Code ist Aus.

Gehe zu


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:28 Uhr.


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