dialog.py

#!/usr/bin/python3
# -*- coding: utf-8 -*-

from tkinter import *
from tkinter import messagebox
from tkinter import simpledialog

############################
class DialogFenster(simpledialog.Dialog):
    # abgeleitet aus simpledialog
    # Aufruf: NamenDialog = DialogFenster(root)

    def body(self, master):
        self.title('Login?')

        self.namen = Label(master, text='Name:  ')
        self.namen.pack(side=LEFT)

        self.e1 = Entry(master,width=18)
        self.e1.insert('0','Tommy')

        self.e1.pack(side=LEFT)

        return self.e1 # Fokus auf die Eingabezeile setzen


    def apply(self):
        self.a1 = self.e1.get()
        self.result = 1 ## alles ok!

############################
def senden():
    messagebox.showinfo('Senden','May be later!')

def verbinde():
    messagebox.showinfo('Verbinde','May be later!')

def info():
    messagebox.showinfo('Info','Dialog-Demo!')

def ende():
    root.destroy()

###########################
def popupMenu(event):
    popup.post(event.x_root, event.y_root)
###########################
## MAIN - Hauptprogramm
############################
root = Tk()
root.title('Dialog-Demo')

foben = Frame(root,width=500)
foben.pack(expand=YES, fill=BOTH)

textfenster = Text(foben,width=90)
textfenster.pack(fill=BOTH,expand=YES)

def benutzer():
    NamenDialog = DialogFenster(root)
    if NamenDialog.result != None:
        ## print NamenDialog.a1
        textfenster.insert(END,'Hallo, ' + NamenDialog.a1 + '!\n')
        messagebox.showinfo('Dialog-Fenster','Hallo, ' + NamenDialog.a1 + '!')


popup = Menu(foben,tearoff=0)
popup.add_command(label='Benutzername', command=benutzer)
popup.add_separator()
popup.add_command(label='Info', command=info)
popup.add_separator()
popup.add_command(label='Beenden', command=ende)

funten = Frame(root,width=500)
funten.pack(side=BOTTOM,expand=YES, fill=BOTH)


eingabe = Entry(funten,width=60)
eingabe.pack(side=LEFT,fill=BOTH,expand=YES)

but1 = Button(funten,text='Senden', command = senden)
but1.pack(side = LEFT,expand=NO)

but2 = Button(funten,text='Verbinden', command = verbinde)
but2.pack(side = LEFT,expand=NO)

but3 = Button(funten,text='Info', command = info)
but3.pack(side = LEFT,expand=NO)

but4 = Button(funten,text='Beenden', command = ende)
but4.pack(side = LEFT,expand=NO)

textfenster.bind('<Button-3>',popupMenu)
textfenster.insert(END,'Versuche die rechte Maustaste im Textfenster . .\n')
textfenster.insert(END,'. . dann im Menue => Benutzername!\n')


root.mainloop()

Fenster schließen