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