Python GUI编程—Tkinter实战一(生日快乐小程序)

经过上一篇Tkinter常用控件的介绍,这一篇运用一些基本控件,来实现一个简单的生日快乐小程序。

demo示例:

import Tkinter
from Tkinter import *
from tkMessageBox import showinfo
from Tkinter import Toplevel, IntVar, StringVar
top=Tkinter.Tk()
top.title("小仙女生日快乐")

#点击选项后显示的提示框内容    
def show():
    if v.get()==1:str='***'
    elif v.get()==2:str='***'
    elif v.get()==3:str='***'
    elif v.get()==4:str='***'
    elif v.get()==5:str='***'
    elif v.get()==6:str='***'
    elif v.get()==7:str='***'
    showinfo('To 小仙女',message=str)
    if v.get()==7:frame1.destroy()

#点击许愿后,弹出的新弹框内容和样式
def wish():
    var.set("小可爱,要加油哦")
    global frame1
    frame1=Toplevel()
    frame1.title("祝小仙女愿望成真") 
    frame1.geometry('300x300')
    frame1.attributes("-topmost", 1)
    frame1.attributes("-alpha",0.8)
    global v
    v=IntVar()
    options=[('变得更漂亮?',1),('变成小富婆?',2),('变得更瘦?',3),('想出去玩儿?',4),('想要生日礼物?',5),('都想要?',6),('...',7)]
    for option,num in options:
        radiobutton=Tkinter.Radiobutton(frame1,text=option,variable=v,value=num,indicatoron=False,command=show)
        radiobutton.pack(anchor=W)
#根弹框
var=StringVar(top)
var.set("点我许愿")
photo=Tkinter.PhotoImage(file='test.gif')
label=Tkinter.Label(top,image=photo,font=('微软雅黑',15))
label.pack()
wishbutton=Tkinter.Button(top,textvariable=var,font=('微软雅黑',15),fg='white',bg='pink',activeforeground='white',activebackground='pink',command=wish)
wishbutton.pack()

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

上面的界面实际上看起来跟我们的操作系统界面有些差别,用着会有些不舒服,这时候就用到了ttk—Tkinter的进阶版,界面美化,用法如下:

style = ttk.Style()
style.configure("BW.TButton",font=('Times',15,'bold'),foreground='white',background='pink')
style.configure("BW.TLabel",font=('Times',20))

photo=Tkinter.PhotoImage(file='test.gif')
label=ttk.Label(top,image=photo,style="BW.TLabel")
label.pack()
wishbutton=ttk.Button(top,textvariable=var,style="BW.TButton",command=wish)
wishbutton.pack()

美化之后的界面如下:感兴趣的可以深入研究下。

在写小程序的时候我想点击“点我许愿”之后更换图片,怎么也搞不定,后来查阅资料之后加几行代码就可以实现了,在wish模块儿里面加了三行,改成timg.gif就可以更换图片了

def wish():
    var.set("小可爱,要加油哦")
    global frame1

    photo=Tkinter.PhotoImage(file='timg.gif')
    label.config(image=photo)
    label.image=photo

    frame1=Toplevel()
    frame1.title("祝小仙女愿望成真") 
    frame1.geometry('300x300')
    frame1.attributes("-topmost", 1)
    frame1.attributes("-alpha",0.8)
    global v
    v=IntVar()
    options=[('变得更漂亮?',1),('变成小富婆?',2),('变得更瘦?',3),('想出去玩儿?',4),('想要生日礼物?',5),('都想要?',6),('...',7)]
    for option,num in options:
        radiobutton=ttk.Radiobutton(frame1,text=option,variable=v,value=num,command=show)
        radiobutton.pack(anchor=W)

 

©️2020 CSDN 皮肤主题: 精致技术 设计师:CSDN官方博客 返回首页