ch8_1.py
# ch8_1.py from tkinter import * root = Tk() root.title("ch8_1") for fm in ["red","green","blue"]: # 建立三个不同底色的框架 Frame(root,bg=fm,height=50,width=250).pack() root.mainloop()ch8_1_1.py
# ch8_1.py from tkinter import * root = Tk() root.title("ch8_1") for fm in ["red","green","blue"]: # 建立三个不同底色的框架 # Frame(root,bg=fm,height=50,width=250).pack() Frame(bg=fm,height=50,width=250).pack() # 调用构造方法时省略父对象 root.mainloop()ch8_2.py
# ch8_1.py from tkinter import * root = Tk() root.title("ch8_2") # 用字典存储框架颜色与光标形状 fms = { "red":"cross", "green":"boat", "blue":"clock" } for fmColor in fms.keys(): # 建立三个不同底色的框架与光标形状 # Frame(root,bg=fm,height=50,width=250).pack() Frame(root,bg=fmColor,cursor=fms[fmColor], height=50,width=250).pack(side=LEFT) # 调用构造方法时省略父对象 root.mainloop()ch8_3.py
# ch8_3.py from tkinter import * root = Tk() root.title("ch8_3") frameUpper = Frame(root,bg="lightyellow") # 建立上层框架 frameUpper.pack() btnRed = Button(frameUpper,text="Red",fg="red") btnRed.pack(side=LEFT,padx=5,pady=5) btnGreen = Button(frameUpper,text="Green",fg="green") btnGreen.pack(side=LEFT,padx=5,pady=5) btnBlue = Button(frameUpper,text="Blue",fg="blue") btnBlue.pack(side=LEFT,padx=5,pady=5) frameLower = Frame(root,bg="lightblue") # 建立下层框架 frameLower.pack() btnPurple = Button(frameLower,text="Purple",fg="purple") btnPurple.pack(side=LEFT,padx=5,pady=5) root.mainloop()ch8_4.py
# ch8_4.py from tkinter import * root = Tk() root.title("ch8_4") fm1 = Frame(width=150,height=80,relief=GROOVE,borderwidth=5) fm1.pack(side=LEFT,padx=5,pady=10) fm2 = Frame(width=150,height=80,relief=RAISED,borderwidth=5) fm2.pack(side=LEFT,padx=5,pady=10) fm3 = Frame(width=150,height=80,relief=RIDGE,borderwidth=5) fm3.pack(side=LEFT,padx=5,pady=10) root.mainloop()ch8_5.py
# ch8_5.py from tkinter import * root = Tk() root.title("ch8_5") fm = Frame(width=150,height=80,relief=RAISED,borderwidth=5) # 创建框架 lab = Label(fm,text="请多选常用的程序语言") # 创建标签 lab.pack() python = Checkbutton(fm,text="Python") # 创建Python复选框 python.pack(anchor=W) java = Checkbutton(fm,text="Java") # 创建Java复选框 java.pack(anchor=W) ruby = Checkbutton(fm,text="Ruby") # 创建Ruby复选框 ruby.pack(anchor=W) fm.pack(padx=10,pady=10) # 包装框架 root.mainloop()ch8_6.py
# ch8_6.py from tkinter import Tk from tkinter.ttk import Frame, Style root = Tk() root.title("ch8_6") style = Style() # 改用Style style.theme_use("alt") # 改用alt支持Style fm1 = Frame(root,width=150,height=80,relief="flat") fm1.grid(row=0,column=0,padx=5,pady=5) fm2 = Frame(root,width=150,height=80,relief="groove") fm2.grid(row=0,column=1,padx=5,pady=5) fm3 = Frame(root,width=150,height=80,relief="raised") fm3.grid(row=0,column=2,padx=5,pady=5) fm4 = Frame(root,width=150,height=80,relief="ridge") fm4.grid(row=1,column=0,padx=5,pady=5) fm5 = Frame(root,width=150,height=80,relief="solid") fm5.grid(row=1,column=1,padx=5,pady=5) fm6 = Frame(root,width=150,height=80,relief="sunken") fm6.grid(row=1,column=2,padx=5,pady=5) root.mainloop()ch8_7.py
# ch8_7.py from tkinter import * root = Tk() root.title("ch8_7") # 窗口标题 msg = "Welcome to Python GUI tkinter Learning System!!!" myGif = PhotoImage(file="chuckle.gif") # Logo图像文件 logo = Label(root,image=myGif,text=msg,compound=BOTTOM) logo.pack() # 以下是LabelFrame标签框架 labFrame = LabelFrame(root,text="数据验证") # 创建框架标签 accountL = Label(labFrame,text="Account") # name标签 accountL.grid(row=0,column=0) # 默认是 column=0 pwdL = Label(labFrame,text="Password") # address标签 pwdL.grid(row=1,column=0) # 默认是 column=0 accountE = Entry(labFrame) # name文本框 accountE.grid(row=0,column=1) pwdE = Entry(labFrame,show="*") # address文本框 pwdE.grid(row=1,column=1,pady=10) # 定位address文本框 labFrame.pack(padx=10,pady=5,ipadx=5,ipady=5) root.mainloop()ch8_8.py
# ch8_8.py from tkinter import * def printInfo(): selection = "" for i in checkboxes.keys(): # 检查此字典的关键字,同: for i in checkboxes: if checkboxes[i].get() == True: # 若被选中则执行 selection = selection + sports[i] + "\t" print(selection) root = Tk() root.title("ch8_8") # 窗口标题 root.geometry("400x320") # 以下建立标签框架与字典 labFrame = LabelFrame(root,text="请选择最喜欢的运动") sports = {0:"美式足球",1:"棒球",2:"篮球",3:"网球",4:"足球",5:"游泳"} # 运动项目构成的字典 checkboxes = {} # 字典,存放被选取项目的BooleanVar变量 for i in range(len(sports)): # 根据运动字典建立复选框 checkboxes[i] = BooleanVar() # 建立布尔变量对象 Checkbutton(labFrame,text=sports[i], variable=checkboxes[i]).grid(row=i+1,sticky=W) labFrame.pack(ipadx=5,ipady=5,pady=10) btn = Button(root,text="确定",width=10,command=printInfo) btn.pack() root.mainloop()ch8_9.py
# ch8_9.py from tkinter import * root = Tk() root.title("ch8_9") # root.geometry("400x320") tl = Toplevel() Label(tl,text="I am a Toplevel!").pack() root.mainloop()ch8_10.py
# ch8_10.py from tkinter import * root = Tk() root.title("ch8_10") tl = Toplevel() tl.title("Toplevel") tl.geometry("300x180") Label(tl,text="I am a Toplevel!").pack() root.mainloop()ch8_11.py
# ch8_11.py from tkinter import * import random cnt = 0 root = Tk() root.title("ch8_11") root.geometry("300x180") msgYes, msgNo, msgExit = 1,2,3 def MessageBox(): msgType = random.randint(1,3) # 随机产生一个整数,范围在1和3之间,包括1和3 if msgType == msgYes: labTxt = "Yes" elif msgType == msgNo: labTxt = "No" elif msgType == msgExit: labTxt = "Exit" tl = Toplevel() tl.geometry("300x180") global cnt tl.title("Message Box"+str(cnt)) cnt += 1 Label(tl,text=labTxt).pack(fill=BOTH,expand=True) btn = Button(root,text="Click Me",command = MessageBox) btn.pack() root.mainloop()