ich bastele gerade an einem kleinen "Minimal-HTML-Editor" für die
Erstellung von Produktbeschreibungen bei eBay.
Nun möchte ich z. B. eine unsortierte Liste einfügen. Dies soll
in einem eigenen Dialogfenster erfolgen, welches mittels einer QSpinBox
die Anzahl der Listenelemente ermittelt und in einer QTable mit nur
einer Spalte die Listeneinträge erfaßt.
Das Dialogfenster soll, durch ein Signal veranlaßt, modal angezeigt
werden und nach Klick auf einen "Einfügen"-Button geschlossen werden.
Da das Anwendungsfenster und das Dialogfenster in zwei unterschiedlichen
Python-Modulen definiert werden, habe ich mich wohl oder übel dazu ent-
schlossen, die Übergabe der Listenelemente über eine globale (ja... ich
weiß... ist nicht schön... hab aber keine andere Lösung gefunden) Liste
zu bewerkstelligen. Das klappt auch ganz gut, jdeoch besteht die
Schweirigkeit, die Liste im Ablauf des "Hauptfensters" auszuwerten.
Hier nun mein Problem:
Das "Hauptfenster" wird in der Datei mainform_impl.py gehandhabt.
Hier wird die Slot-Funktion slList(self) definiert.
Zu Testzwecken habe ich hier die Zeile
print globals.globlist
angefügt, um zu überprüfen, ob die Liste wirklich in die globale Variable
übernommen wurde. Das ist auch so, aber leider wird die Zeile mit der
print-Anweisung bereits ausgeführt, bevor noch das Dialogfenster
mit besagten "Einfügen"-Button geschlossen wird. Es erscheint also
als Konsolenausgabe lediglich die als leere Liste zuvor initialisierte
Liste []. Ein erneuter Aufruf von slList(self) erzeugt dann aber
die Ausgabe der zuvor erstellten Liste. Die neu eingegebe Liste
wird wiederum in globals.globlist übernommen. aber natürlich wieder
nicht mit der print-Anweisung ausgegeben.
Frage:
Wie sorge ich dafür, daß der Programmablauf während der Ausführung des
Listendialoges quasi "angehalten" wird, bis das Dialogfenster mit
dem "Einfügen"-Buttons geschlossen wurde?
Zur Zeit "läuft" ja die Funktion slList(self) nach
self.liform.show()
quasi "weiter" und sorgt in der Zeile
print globals.globlist
für besagte nicht aktuelle Ausgabe. Somit könnte ich auch an dieser
Stelle nicht die Auswertung der Liste - also das Einfügen derselben
im QText-Widget des Hauptfensters - erledigen.
Hoffentlich konnte ich mich verständlich machen... und hoffentlich
kann mir jemand einen Tip geben.... meine Frau benötigt das "Progrämmle"
dringend...
Gruß
Daniel
Code: Alles auswählen
def slList(self):
self.liform=ulForm_Impl()
self.liform.show() #hier soll quasi gewartet werde, bis der Dialog geschlossen wurde
print globals.globliste