(一)
之前使用easy_gui写过一下界面,感觉就是太过于简单了,因此这次是学习tkinter来做的。
import tkinter as tk #顶层窗口,根窗口 app = tk.Tk() app.title("flash demo") theLabel = tk.Label(app,text="我的第二个窗口程序!")#建立一个组件,用于显示文本和图片 theLabel.pack()#用于自动调节组件尺寸和位置 app.mainloop()#窗口的主事件循环
这是最简单的一个界面。
import tkinter as tk class APP: def __init__(self,master): frame = tk.Frame(master)#frame是框架,用于复杂布局 frame.pack(side=tk.LEFT,padx=10,pady=10)#自动调整位置,默认是top,同理tk.right是位于右边 #padx是在x轴的间距,pady是在y轴的间距 self.hi_there = tk.Button(frame,text="打招呼",fg="blue",bg="pink",command=self.say_hi) self.hi_there.pack() def say_hi(self): print("hi") root = tk.Tk() app = APP(root)#将root底层窗口设置为参数 root.mainloop()
(二)
如何来输出图像和文字呢?
from tkinter import * root = Tk() photo = PhotoImage(file="黑板.png") theLabel = Label(root, text="\r 人生苦短\r我用python", justify=LEFT,#对齐方式 image=photo,#储存图片 compound=CENTER,#混合模式,图片在下,文字在图片正上方 font=("行楷",50), fg="white", ) theLabel.pack() mainloop()
上面都是一些简单的使用,下面是来设置一个按钮
from tkinter import * def callback(): var.set("吹吧你,我才不信呢") root = Tk() frame1=Frame(root) frame2=Frame(root) var=StringVar() var.set("您所下载的影片有未成年人限制内容,\r请满18岁再点击!") textLabel = Label(frame1, textvariable=var, #textvariable显示的是一个变量 justify=LEFT, padx=10, pady=10) textLabel.pack(side=LEFT)#justify意为对齐方式 photo = PhotoImage(file="无标题.png") imgLabel = Label(root,image=photo) imgLabel.pack(side=RIGHT,padx=10,pady=10) theButton = Button(frame2,text="我已满18周岁",command=callback) theButton.pack() frame1.pack(padx=10,pady=10) frame2.pack(padx=10,pady=10) mainloop()
上述的var设置为字符串变量,这样我们可以通过改变该变量来更改界面的文字输出,以后所有的变量几乎都是Var,比如在IntVar()中等等。
(三)
下面介绍选项的使用
from tkinter import * root = Tk() v = IntVar()#设置Int变量 c = Checkbutton(root,text="click",variable=v)#一旦按键被按的话,将会改变cariable也就是改变v的值 c.pack() l = Label(root,textvariable=v) l.pack() mainloop()
from tkinter import * root = Tk() GIRLS = ["西施","貂蝉","王昭君","杨玉环"] v = [] for girl in GIRLS: v.append(IntVar()) b=Checkbutton(root,text=girl,variable=v[-1])#v[-1]是选中最后一个数组中的数,也就是我们上一个语句插入的数 b.pack(anchor=W)#anchor分为八个方向,因为左对齐,所以西W mainloop()
from tkinter import * root=Tk() group = LabelFrame(root,text="最好的脚本语言是?",padx=5,pady=5)#通过LabelFrame构建一个容器部件,装载下述选项 group.pack(padx=10,pady=10) LANGSS = [ ("Python",1), ("Perl",2), ("Ruby",3), ("Lua",4)] v=IntVar()#只设置一个v,保证单选 for lang,num in LANGSS: b = Radiobutton(group,text=lang,variable=v,value=num)#,indicatoron=False) #indicatoron就是设置小圈圈 #value的意义是来和variable相对比,如果一样那么显示选中,否则不中,因此v只能代表一个选项 b.pack(anchor=W) mainloop()
时间: 2024-09-29 18:48:59