GUI für LibreOffice Calc

Plattformunabhängige GUIs mit wxWidgets.
zarathustra
User
Beiträge: 53
Registriert: Samstag 17. April 2010, 23:02

Donnerstag 19. März 2020, 09:33

Ohne genau zu wissen was multiprocessing ist bzw. wie's funktioniert (hab' gestern Abend mal danach gesucht -stehe da noch am Anfang) wäre das denn dann nicht auch was um eine "LO-Fremde-GUI" laufen zu lassen?

Man bräuchte dann vermutlich drei Prozesse. Einen für die GUI, einen für den Zugriff von der GUI zu LO, und einen für die Ausgabe (z.B. von LO in einen Matplot)

Liege ich da mit meiner dunklen Vorahnung in etwa richtig oder funzt das gar nicht?
__deets__
User
Beiträge: 7656
Registriert: Mittwoch 14. Oktober 2015, 14:29

Donnerstag 19. März 2020, 10:45

Wenn du eine GUI baust, dann kann die ja matplotlib unterstuetzen. Das Problem sind ZWEI GUI-Frameworks in einem Prozess. Das geht halt (wie diverse male schon argsprochen) eher nicht. Darum reichen zwei Prozesse.
zarathustra
User
Beiträge: 53
Registriert: Samstag 17. April 2010, 23:02

Freitag 20. März 2020, 21:40

Hallo __deets__

ich habe mir die einfachen Beispiele für Multiprocessing mal angesehen und versucht mir nützlich zu machen. Meine Vorgehensweise ist vermutlich völlig falsch. Ich habe einfach eine weitere Funktion geschaffen die als Starter dienen soll:

Code: Alles auswählen

def StarterBeispielDialog(*args): 
und da den Prozessaufruf integriert.

Code: Alles auswählen

def StarterBeispielDialog(*args):
    p = Process(target=BeispielDialog)
    p.start()
    p.join()
Das führt dazu, dass sich LO aufhängt und spätestens nach dem zweiten Aufhängen muß ich das Betriebssystem neu starten, weil bei LO nix mehr geht.

Könntest Du mir zeigen wie man den Dialogaufruf in einen Prozeß einbindet? Nur wenn's nicht zu viel Tipparbeit (<5 Zeilen Code) für Dich ist. Vielen Dank dafür.

Viele Grüße

Zarathustra
__deets__
User
Beiträge: 7656
Registriert: Mittwoch 14. Oktober 2015, 14:29

Freitag 20. März 2020, 22:48

Hm. Ich denke eher das ich da was nicht bedacht habe, nämlich das multiprocessing so spät zum Zuge kommt (weil LO es erst aufruft via Makro), dass da das Kind schon im Brunnen ist.

Ich denke nochmal ein bisschen nach. Statt multiprocessing muss es wohl eher subprocess werden, aber wie die dann geschickt miteinander kommunizieren, muss ich noch rausfinden.
Benutzeravatar
__blackjack__
User
Beiträge: 5458
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Samstag 21. März 2020, 00:56

Vielleicht wäre https://pypi.org/project/execnet/ eine Möglichkeit.
long long ago; /* in a galaxy far far away */
Antworten