Multiprozess - Fenster schliessen

Fragen zu Tkinter.
Antworten
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

hi leute,
ich brauche wieder einmal einen guten tip/hilfe:
ich würde gern durch click auf beenden alles schliessen, d.h. das root- und das backwin-fenster beide.
gibt es da eine möglichkeit?
habs schon mit "return" versucht, aber :twisted: :evil: :oops:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import Tkinter
from Tkinter import *
from multiprocessing import Process

def haupt_Start():
    root = Tkinter.Tk()
    root.geometry('800x500+385+200')

    def beenden():
        root.destroy()
        
    b = Tkinter.Button(root, text=("\nBEENDEN\n"), font=('Arial', 10, 'bold'), width=20, relief="raised", borderwidth=3, fg='#000000000', justify='center',command=beenden)
    b.place(relx=.53, rely=.8, anchor="c")

def hinter_Grund():
    backwin = Tkinter.Tk()
    backwin.title('DMD-DATA.soft')
    backwin.state('zoomed')
    backwin.configure(background='black')
    backwin.mainloop()

if __name__=='__main__':
     Process(target = haupt_Start()).start()
     Process(target = hinter_Grund()).start()
Zuletzt geändert von Anonymous am Freitag 10. Juni 2016, 15:05, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Codebox-Tags gesetzt.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@DMD-OL: Tk mit multiprocessing ist seltsam. multiprocessing ist ja für rechenintensive Aufgaben gedacht und GUI ist per Definition *nicht* rechenintensiv. In Deiner Konfiguration mußt Du vom haupt_start-Prozess ein Signal an den Haupt-Prozess schicken, der das wiederum an alle Unterprozesse schickt, die sich dann beenden. Aber wie gesagt, das ganze macht eigentlich keinen Sinn.
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

wie kann ich denn sonst einem bestehenden programm, ein hintergrundfenster beifügen, ohne dass es sonst angesprochen wird (ausnahme ist der BEENDEN-Button)?
BlackJack

@DMD-OL: Zusätzliche Fenster neben dem Hauptfenster werden mit `Toplevel` erstellt.
DMD-OL
User
Beiträge: 315
Registriert: Samstag 26. Dezember 2015, 16:21

bei einem hintergrundfenster als Toplevel() würde es ja jedesmal wieder ausgehen, wenn das "main"-fenster verlassen wird. es
soll aber immer im hintergrund bleiben, ausser ich drücke auf den BEENDEN-Button, dann soll es natürlich auch mit aus gehen.
Sirius3
User
Beiträge: 17750
Registriert: Sonntag 21. Oktober 2012, 17:20

@DMD-OL: was meinst Du mit »ausgehen« und was mit »"main"-fenster verlassen«? Du legst doch fest, wann welches Fenster angezeigt wird und wann es wieder verschwindet.
Antworten