Python GUI Tk : Common Dialog & Dialog

 OK Cancel dialog

from Tkinter import *
import math

root = Tk()
top = Frame(root) 
top.pack(side='top')

hwtext = Label(top, text='Hello, World! The sine of')
hwtext.pack(side='left')

r = StringVar()
r.set('1.2')   
r_entry = Entry(top, width=6, textvariable=r)
r_entry.pack(side='left')

s = StringVar()
def comp_s(event):
    global s
    s.set('%g' % math.sin(float(r.get()))) # construct string

r_entry.bind('<Return>', comp_s)

compute = Label(top, text=' equals ')
compute.pack(side='left')

s_label = Label(top, textvariable=s, width=18)
s_label.pack(side='left')

import tkMessageBox
def quit(event):
    if tkMessageBox.askokcancel('Quit','Do you really want to quit?'):
        root.destroy()

root.bind('<q>', quit)

root.mainloop()

Question dialog

from Tkinter import *
from tkMessageBox import *
from tkFileDialog   import askopenfilename      

def callback():
    askquestion('Warning', 'Line "quotation"\n Line 2 ?')
    
    
errmsg = 'Error!'
Button(text='Quit', command=callback).pack(fill=X)
Button(text='Spam', command=(lambda: showerror('Spam', errmsg))).pack(fill=X)
mainloop()

Error dialog

from Tkinter import *
from tkMessageBox import *
from tkFileDialog   import askopenfilename      

def callback():
    showerror('Error!', "Error")
    
    
errmsg = 'Error!'
Button(text='Quit', command=callback).pack(fill=X)
Button(text='Spam', command=(lambda: showerror('Spam', errmsg))).pack(fill=X)
mainloop()

Entry dialog

from Tkinter import *
from tkMessageBox import *
from tkColorChooser import askcolor              
from tkMessageBox   import askquestion, showerror
from tkSimpleDialog import askfloat
from tkFileDialog   import askopenfilename      

def callback():
    askfloat('Entry', 'Input field')
    
    
errmsg = 'Error!'
Button(text='Quit', command=callback).pack(fill=X)
Button(text='Spam', command=(lambda: showerror('Spam', errmsg))).pack(fill=X)
mainloop()

File open dialog

from Tkinter import *
from tkMessageBox import *
from tkColorChooser import askcolor              
from tkFileDialog   import askopenfilename      

def callback():
    askopenfilename() 
    
    
errmsg = 'Error!'
Button(text='Quit', command=callback).pack(fill=X)
Button(text='Spam', command=(lambda: showerror('Spam', errmsg))).pack(fill=X)
mainloop()

Color chooser dialog

from Tkinter import *
from tkMessageBox import *
from tkColorChooser import askcolor              
from tkFileDialog   import askopenfilename      

def callback():
    askcolor() 
    
    
errmsg = 'Error!'
Button(text='Quit', command=callback).pack(fill=X)
Button(text='Spam', command=(lambda: showerror('Spam', errmsg))).pack(fill=X)
mainloop()

Buildin dialogs: warning dialog, info dialog and error dialog

from Tkinter import *
from tkMessageBox import *

def callback():
    if askyesno('Verify', 'Quit?'):
        showwarning('Yes', 'Quit not yet implemented')
    else:
        showinfo('No', 'Quit has been cancelled')

errmsg = 'Error!'
Button(text='Quit', command=callback).pack(fill=X)
Button(text='Spam', command=(lambda: showerror('Spam', errmsg))).pack(fill=X)
mainloop()

YES NO CANCEL dialog

from Tkinter import *
from Dialog import Dialog

class OldDialogDemo(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        Pack.config(self)  # same as self.pack()
        Button(self, text='Pop1', command=self.dialog1).pack()
        Button(self, text='Pop2', command=self.dialog2).pack()
    def dialog1(self):
        ans = Dialog(self,
                     title   = 'Title!',
                     text    = 'text'
                               'and text "quotation".',
                     bitmap  = 'questhead',
                     default = 0, strings = ('Yes', 'No', 'Cancel'))
        if ans.num == 0: self.dialog2()
    def dialog2(self):
        Dialog(self, title   = 'title',
                     text    = "text",
                     bitmap  = 'hourglass',
                     default = 0, strings = ('spam', 'SPAM'))

if __name__ == '__main__': OldDialogDemo().mainloop()

Set Color

from Tkinter import *
from tkColorChooser import askcolor

def setBgColor():
    (triple, hexstr) = askcolor()
    if hexstr:
        print hexstr
        push.config(bg=hexstr)

root = Tk()
push = Button(root, text='Set Background Color', command=setBgColor)
push.config(height=3, font=('times', 20, 'bold'))
push.pack(expand=YES, fill=BOTH)
root.mainloop()

Customized dialog
from Tkinter import *
from tkMessageBox import askyesno, showerror

class NewDialogDemo(Frame):
    def __init__(self, master=None):
        Frame.__init__(self, master)
        Pack.config(self)
        self.createWidgets()

    def greet(self):
        print "hi"

    def createWidgets(self):
        Label(self,  text='Label').pack(side=TOP)
        Button(self, text='Button 1', command=self.dialog1).pack()
        Button(self, text='Button 2', command=self.dialog2).pack()
        Button(self, text='Button 3',  command=self.greet  ).pack(side=LEFT)
        Button(self, text='Button 4',  command=self.quit   ).pack(side=RIGHT)

    def dialog1(self):
        ans = askyesno('Title!', 'Text')
        if ans: self.dialog2()

    def dialog2(self):
        showerror('Error title', "Text")

if __name__ == '__main__': NewDialogDemo().mainloop()

A message box
from Tkinter import *

root = Tk()
root.title('Message')
Message(root, text="Text Text Text Text Text Text Text Text Text Text "
      "Text Text Text Text Text Text Text Text Text Text Text Text Text "
      "Text Text Text Text Text Text Text Text Text Text Text Text Text "
      "Text Text Text Text Text Text Text Text Text Text Text Text Text "
      "Text Text Text Text Text Text Text Text Text Text Text Text Text "
      "Text Text Text Text .", bg='royalblue',
      fg='ivory', relief=GROOVE).pack(padx=10, pady=10)
root.mainloop()
showwarning Dialog box
from Tkinter import *
import tkMessageBox
       
def a():       
     tkMessageBox.showwarning("Open file", "Cannot open this file\n")
     
a()
Use message to alert an Exception
from Tkinter import *
import tkMessageBox
       
def a():       
    filename = "a.txt"
    try:
        fp = open(filename)
    except:
        tkMessageBox.showwarning(
            "Open file",
            "Cannot open this file\n(%s)" % filename
        )
        return
a()
OK cancel dialog box
from Tkinter import *
import tkMessageBox

tkMessageBox.askokcancel("Quit", "Do you really wish to quit?")

Creating a simple dialog
from Tkinter import *

class MyDialog:
    def __init__(self, parent):

        top = self.top = Toplevel(parent)

        Label(top, text="Value").pack()

        self.e = Entry(top)
        self.e.pack(padx=5)

        b = Button(top, text="OK", command=self.ok)
        b.pack(pady=5)

    def ok(self):

        print "value is", self.e.get()

        self.top.destroy()


root = Tk()

d = MyDialog(root)

root.wait_window(d.top)

Add components to a dialog
from Tkinter import *

class MyDialog:
    def __init__(self, parent):

        top = self.top = Toplevel(parent)

        Label(top, text="Value").pack()

        self.e = Entry(top)
        self.e.pack(padx=5)

        b = Button(top, text="OK", command=self.ok)
        b.pack(pady=5)

    def ok(self):

        print "value is", self.e.get()

        self.top.destroy()


root = Tk()
#Button(root, text="Hello!").pack()
#root.update()

d = MyDialog(root)

root.wait_window(d.top)

Get input value from a dialog
from Tkinter import *

class MyDialog:
    def __init__(self, parent):

        top = self.top = Toplevel(parent)

        Label(top, text="Value").pack()

        self.e = Entry(top)
        self.e.pack(padx=5)

        b = Button(top, text="OK", command=self.ok)
        b.pack(pady=5)

    def ok(self):

        print "value is", self.e.get()

        self.top.destroy()


root = Tk()
d = MyDialog(root)

root.wait_window(d.top)
Use message to alert an Exception
from Tkinter import *
import tkMessageBox
       
def a():       
    filename = "a.txt"
    try:
        fp = open(filename)
    except:
        tkMessageBox.showwarning(
            "Open file",
            "Cannot open this file\n(%s)" % filename
        )
        return
a()

Popup menu demonstration.
from Tkinter import *

class PopupMenuDemo( Frame ):
   def __init__( self ):
      Frame.__init__( self )
      self.pack( expand = YES, fill = BOTH )
      self.master.title( "Popup Menu Demo" )
      self.master.geometry( "300x200" )

      self.frame1 = Frame( self, bg = "white" )
      self.frame1.pack( expand= YES, fill = BOTH )
      
      self.menu = Menu( self.frame1, tearoff = 0 )

      colors = [ "White", "Blue", "Yellow", "Red", "Pink", "Gray", "Purple"]
      self.selectedColor = StringVar()
      self.selectedColor.set( colors[ 0 ] )
      
      for item in colors:
         self.menu.add_radiobutton( label = item,
            variable = self.selectedColor,
            command = self.changeBackgroundColor )

      self.frame1.bind( "<Button-3>", self.popUpMenu )

   def popUpMenu( self, event ):
      self.menu.post( event.x_root, event.y_root )

   def changeBackgroundColor( self ):
      self.frame1.config( bg = self.selectedColor.get() )
      
def main():
   PopupMenuDemo().mainloop()   

if __name__ == "__main__":
   main()

Message Box
from Tkinter import *
msg = Message(text="Text Text Text Text Text?")
msg.config(bg='pink', font=('times', 16, 'italic'))
msg.pack()
mainloop()
Option Menu Demo

from Tkinter import *
root = Tk()

var1 = StringVar()
var2 = StringVar()

opt1 = OptionMenu(root, var1, 'A', 'B', 'C')   
opt2 = OptionMenu(root, var2, 'A', 'B', 'C')   

opt1.pack(fill=X)
opt2.pack(fill=X)

var1.set('A')
var2.set('B')

def state(): 
   print var1.get(), var2.get()

Button(root, command=state, text='state').pack()

root.mainloop()