python scripts GUI design


                把学习的关于gui设计的代码贴上吧。
这些代码都是在FC6环境下,用kate写的。我感觉kate比较好用。呵呵
今天的代码贴到这里,不语法加亮了,奇怪!可能是没有下载flash插件吧。
不知道你们看着有没有颜色!呵呵
1,click_counter.py
from Tkinter import *
class Application(Frame):
    " " " GUI application which counts button clicks." " "
    def __init__(self, master):
        " " " Initialize the frame." " "
        Frame.__init__(self, master)
        self.grid()
        self.bttn_clicks=0         # creates an object atribute to keep track of the number of
                                                       # times the user clicks the button
        self.create_widget()
    def create_widget(self):
        " " " Create button which displays number of clicks. " " "
        self.bttn=Button(self)
        self.bttn["text"]="total clicks: 0"
        self.bttn["command"]=self.update_count
        self.bttn.grid()
        # in general , you set a widget's command option to
        # bind the activation of the widget with an event handler
    def update_count(self):
        " " " Increase click count and display new total." " "
        self.bttn_clicks+=1
        self.bttn["text"]="total clicks:" + str(self.bttn_clicks)
        # this method increments the total number of button clicks
        # and then change the text of the button to reflect the new total
   
# wrapping up the program
# main
root=Tk()
root.title("click counter")
root.geometry("200x100")
app=Application(root)
root.mainloop()
2,labeler.py
from Tkinter import *
# create the root window
root=Tk()
root.title("labeler")
root.geometry("200x50")
# create a frame in the window to hold other widgets
app=Frame(root)
# the new frame is placed inside the root window
app.grid()
# let you arrange widgets
# create a label in the frame
lb1=Label(app, text="I'm a label!")
# app is the place where "i'm a label!" exists
lb1.grid()
# kick off the window's event loop
root.mainloop()
3,lazy_buttons2.py
from Tkinter import *
class Application(Frame):
    " " " A GUI application with three buttons." " "
    # an application object is just a specialized type of Frame object
   
    # define Application's constructor
    def __init__(self, master):
        " " " Initialize the Frame " " "
        Frame.__init__(self, master)
        self.grid()
        self.create_widgets()
   
    def create_widgets(self):
        " " " Create three buttons that do nothing." " "
        # create first botton
        self.bttn1=Button(self, text="i do nothing")
        self.bttn1.grid()
        
        # create second button
        self.bttn2=Button(self)
        self.bttn2.grid()
        self.bttn2.configure(text="me too")
        
        # create third button
        self.bttn3=Button(self)
        self.bttn3.grid()
        self.bttn3["text"]="same here"
# main        
root=Tk()
root.title("lazy button 2")
root.geometry("200x100")
app=Application(root)
# this code creates a Application object with the root window as its master
# the Application object's constructor invokes the object's create_widgets() methods
# this method then create the three buttons
# with the Application object as their master
root.mainloop()
4,lazy_buttons.py
from Tkinter import *
# create a root window
root=Tk()
root.title("lazy button")
root.geometry("200x100")
# hint: you must not use "=" here
# create a frame in the window to hold other widgets ( the buttons here)
app=Frame(root)
app.grid()
# create a button in the frame
bttn1=Button(app, text="I do nothing")
bttn1.grid()
bttn2=Button(app)
bttn2.grid()
# all i've done is add a blank button to the frame
bttn2.configure(text="Me too")
# you can use a widget's configure() method for any widgets option
# create a third button in the frame
bttn3=Button(app)
bttn3.grid()
bttn3["text"]="same here"
# i access the button's text option through a dictionary-like interface
# I set the text option to the string "same here", which puts the text
# "same here" on the buttons
# kick off the window's event loop
root.mainloop()
5,movie_chooser2.py
from Tkinter import *
class Application(Frame):
    " " " GUI Application from favorite movie type." " "
    def __init__(self, master):
        " " "  Initialize Frame. " " "
        Frame.__init__(self, master)
        self.grid()
        self.create_widgets()
    def create_widgets(self):
        " " " Create widgets for movie type choices. " " "
        # create description label
        Label(self,
             text="choose your favorite type of movie"
            ).grid(row=0, column=0, sticky=W)
        # create instruction label
        Label(self,
             text="select one:"
             ).grid(row=1, column=0, sticky=W)
        
        # create variable for single, favorite type of movie
        self.favorite=StringVar()
        
        # create comedy radio button
        Radiobutton(self,
                    text="comedy",
                    variable=self.favorite,
                    value="comedy",
                    command=self.update_text
                    ).grid(row=2, column=0, sticky=W)
        # create drama radio button
        Radiobutton(self,
                    text="drama",
                    variable=self.favorite,
                    value="drama",
                    command=self.update_text
                    ).grid(row=3, column=0, sticky=W)
        # create romance radio buttons
        Radiobutton(self,
                    text="romance",
                    variable=self.favorite,
                    value="romance",
                    command=self.update_text
                    ).grid(row=4, column=0, sticky=W)
        # create text field to display results
        self.results_txt=Text(self, width=40, height=5, wrap=WORD)
        self.results_txt.grid(row=5, column=0, columnspan=3)
        
    def update_text(self):
        " " " Update text widget and display user's favorite movie types." " "
        message="your favorite type of movie is "
        message+=self.favorite.get()
        self.results_txt.delete(0.0, END)
        self.results_txt.insert(0.0, message)
        
# main
root=Tk()
root.title("movie chooser 2")
app=Application(root)
root.mainloop()
6movie_chooser.py
from Tkinter import *
class Application(Frame):
    " " " GUI Application from favorite movie types." " "
    def __init__(self, master):
        Frame.__init__(self, master)
        self.grid()
        self.create_widgets()
    def create_widgets(self):
        " " " Create widgets for movie type choices. " " "
        # create description label
        Label(self,
             text="choose your favorite movie types"
            ).grid(row=0, column=0, sticky=W)
        # create instruction label
        Label(self,
             text="select all that apply:"
             ).grid(row=1, column=0, sticky=W)
        
        # create comedy check button
        self.likes_comedy=BooleanVar()
        Checkbutton(self, text="comedy",
                    variable=self.likes_comedy,
                    command=self.update_text
                    ).grid(row=2, column=0, sticky=W)
        # create drama check button
        self.likes_drama=BooleanVar()
        Checkbutton(self,
                    text="drama",
                    variable=self.likes_drama,
                    command=self.update_text
                    ).grid(row=3, column=0, sticky=W)
        # create romance check buttons
        self.likes_romance=BooleanVar()
        Checkbutton(self,
                    text="romance",
                    variable=self.likes_romance,
                    command=self.update_text
                    ).grid(row=4, column=0, sticky=W)
        # create text field to display results
        self.results_txt=Text(self, width=40, height=5, wrap=WORD)
        self.results_txt.grid(row=5, column=0, columnspan=3)
    def update_text(self):
        " " " Update text widget and display user's favorite movie types." " "
        likes = " "
        
        if self.likes_comedy.get():
            likes+="you like comedic movies.\n"
        if self.likes_drama.get():
            likes+="you like dramatic movies.\n"
        if self.likes_romance.get():
            likes+="you  like romantic movies."
        self.results_txt.delete(0.0, END)
        self.results_txt.insert(0.0, likes)
        
# main
root=Tk()
root.title("movie chooser")
app=Application(root)
root.mainloop()
7,simple_gui.py
from Tkinter import *
# create the root window
root=Tk()
# i don't have to prefix the module name Tkinter
# I can directly access any part of the Tkinter module
# you can have only one root window in a Tkinter program
# modifying the window
root.title("simple GUI")
# set the title of the root window
root.geometry("800x600")
# set the size of the root window,
# "x" character, between 'z' and 'c' on the keyboard
# kick off the window's event loop
root.mainloop()
# it is a full-fledged window than can resize, minimize, and close
8,
longevity.py
from Tkinter import *
class Application(Frame):
    " " " GUI application which can reveal the secret of longevity. " " "
    def __init__(self, master):
        " " " Initialize the frame. " " "
        Frame.__init__(self, master)
        self.grid()
        self.create_widgets()
    def create_widgets(self):
        " " " Create button, text, and entry widgets. " " "
        # create instruction label
        self.inst_la1=Label(self, text="enter password for the secret of longevity")
        self.inst_la1.grid(row=0, column=0, columnspan=2, sticky=W)
        
        # create label for password
        self.pw_lb1=Label(self, text="password:")
        self.pw_lb1.grid(row=1, column=0, sticky=W)
        # create entry widgets to accept password
        self.pw_ent=Entry(self)
        # this code creates a text entry where the user can enter a password
        self.pw_ent.grid(row=1, column=1, sticky=W)
        # create submit button
        self.submit_bttn=Button(self, text="submit", command=self.reveal)
        # i bind the activation of the button with the reveal() method
        # which reveals the longevity secret
        self.submit_bttn.grid(row=2, column=0, sticky=W)
        
        # create text widgets to display message
        self.secret_txt=Text(self, width=35, height=5, wrap=WORD)
        self.secret_txt.grid(row =3, column=0, columnspan=2, sticky=W)
   
    def reveal(self):
        " " " Display message based on password. " " "
        contents=self.pw_ent.get()
        # the get() method returns the text in the widgets
        if contents=="secret":
            message="here's the secret to living to 100: live to 99 and then be VERY careful."
        else:
            message="that's not the correct password, so i can't share the secret with you ."
        self.secret_txt.delete(0.0 , END)
        # the delete() method can delete text from text-based widgets
        self.secret_txt.insert(0.0 , message)
        # the insert() method can insert a text-based widgets
# main
root=Tk()
root.title("Longevity")
root.geometry("250x150")
app=Application(root)
root.mainloop()
要是看着不舒服的话,请下载原文件:

       
        文件:24.tar.gz
        大小:2KB
        下载:
下载