Tkinter 做简单的窗口视窗 (GUI)

    技术2022-07-12  70

    文章目录

    Tkinter窗口1. lable、button2. Entry、Text3. listbox 列表4. Radiobutton5. scale尺寸6. Checkbutton

    Tkinter

    Tkinter 是使用 python 进行窗口视窗设计的模块。Tkinter模块(“Tk 接口”)是Python的标准Tk GUI工具包的接口

    1、Tkinter 模块元素简要说明 2、常用窗口部件及简要说明:

    Tkinter支持16个核心的窗口部件,这个16个核心窗口部件类简要描述如下: Button:一个简单的按钮,用来执行一个命令或别的操作。 Canvas:组织图形。这个部件可以用来绘制图表和图,创建图形编辑器,实现定制窗口部件。 Checkbutton:代表一个变量,它有两个不同的值。点击这个按钮将会在这两个值间切换。 Entry:文本输入域。 Frame:一个容器窗口部件。帧可以有边框和背景,当创建一个应用程序或dialog(对话)版面时,帧被用来组织其它的窗口部件。 Label:显示一个文本或图象。 Listbox:显示供选方案的一个列表。listbox能够被配置来得到radiobutton或checklist的行为。 Menu:菜单条。用来实现下拉和弹出式菜单。 Menubutton:菜单按钮。用来实现下拉式菜单。 Message:显示一文本。类似label窗口部件,但是能够自动地调整文本到给定的宽度或比率。 Radiobutton:代表一个变量,它可以有多个值中的一个。点击它将为这个变量设置值,并且清除与这同一变量相关的其它radiobutton。 Scale:允许你通过滑块来设置一数字值。 Scrollbar:为配合使用canvas, entry, listbox, and text窗口部件的标准滚动条。 Text:格式化文本显示。允许你用不同的样式和属性来显示和编辑文本。同时支持内嵌图象和窗口。 Toplevel:一个容器窗口部件,作为一个单独的、最上面的窗口显示。 messageBox:消息框,用于显示你应用程序的消息框。(Python2中为tkMessagebox) 注意在Tkinter中窗口部件类没有分级;所有的窗口部件类在树中都是兄弟关系。

    窗口

    # 窗口 import tkinter as tk window=tk.Tk() window.title('my window') window.geometry('200x100') # window.mainloop()

    1. lable、button

    import tkinter as tk window = tk.Tk() window.title('my window') window.geometry('200x100') # var = tk.StringVar() l = tk.Label(window,textvariable=var,bg='green',font=('Arial',12),width=15,height=2) l.pack() on_hit = False def hit_me(): global on_hit if on_hit == False: on_hit=True var.set('you hit me') else: on_hit=False var.set('ha') b = tk.Button(window,text='hit me',width=15,height=2,command=hit_me) b.pack() window.mainloop() 结果:

    2. Entry、Text

    import tkinter as tk window = tk.Tk() window.title('my window') window.geometry('200x200') # var = tk.StringVar() e=tk.Entry(window,show='2') e.pack() def insert_point(): var = e.get() t.insert('insert',var) def insert_end(): var = e.get() t.insert(2.2,var) b1 = tk.Button(window,text='insert point',width=15,height=2,command=insert_point) b1.pack() b2 = tk.Button(window,text='insert end',width=15,height=2,command=insert_end) b2.pack() t = tk.Text(window,height=2) t.pack() window.mainloop() 结果:

    3. listbox 列表

    import tkinter as tk window = tk.Tk() window.title('my window') window.geometry('200x300') # var1 = tk.StringVar() l = tk.Label(window,textvariable=var1,bg='yellow',width=4) l.pack() def print_selection(): value = lb.get(lb.curselection()) var1.set(value) b1 = tk.Button(window,text='print selection',width=15,height=2,command=print_selection) b1.pack() var2 = tk.StringVar() var2.set((11,22,33)) lb = tk.Listbox(window,listvariable=var2) list_items=[1,2,3,4] for item in list_items: lb.insert('end',item) lb.insert(1,'first') lb.insert(2,'second') lb.delete(2) lb.pack() window.mainloop() 结果:

    4. Radiobutton

    import tkinter as tk window = tk.Tk() window.title('my window') window.geometry('200x300') # var = tk.StringVar() # l = tk.Label(window,text='empty',bg='yellow',width=20) l.pack() def print_selection(): l.config(text='you have selection'+ var.get()) r1=tk.Radiobutton(window,text='option A',variable=var,value='A',command=print_selection) r1.pack() r2=tk.Radiobutton(window,text='option B',variable=var,value='B',command=print_selection) r2.pack() r3=tk.Radiobutton(window,text='option C',variable=var,value='C',command=print_selection) r3.pack() window.mainloop()片 结果:

    5. scale尺寸

    import tkinter as tk window = tk.Tk() window.title('my window') window.geometry('200x300') # l = tk.Label(window,bg='yellow',width=20,text='empty') l.pack() def print_selection(v): l.config(text='you have selection'+ v) s = tk.Scale(window,label='try me',from_=5,to=11,orient=tk.HORIZONTAL, length=200,showvalue=0,tickinterval=3,resolution=0.01,command=print_selection) s.pack() window.mainloop() 结果:

    6. Checkbutton

    import tkinter as tk window = tk.Tk() window.title('my window') window.geometry('200x300') # l = tk.Label(window,bg='yellow',width=20,text='empty') l.pack() def print_selection(): if(var1.get()==1)and(var2.get()==0): l.config(text='I love only Python ') elif (var1.get()==0)and (var2.get()==1): l.config(text='I love only C++') elif (var1.get()==0)and(var2.get()==0): l.config(text='I do not love either') else: l.config(text='I love both') var1=tk.IntVar() var2=tk.IntVar() c1 = tk.Checkbutton(window,text='Python',variable=var1,onvalue=1,offvalue=0,command=print_selection) c2 = tk.Checkbutton(window,text='C++',variable=var2,onvalue=1,offvalue=0,command=print_selection) c1.pack() c2.pack() window.mainloop() 结果:

    Processed: 0.010, SQL: 10