本文共 3675 字,大约阅读时间需要 12 分钟。
学习python的意义在于python提供很多数据分析的包,所以如果不是为了搬砖,那么python就是最好的选择。但是学了那么多总归要给别人展示吧。所以图形界面开发是一个必要的技能。这里不讨论其他的选项,就是为了学python。
Tkinter是python自带的一款GUI组件,所以相对于其他的各种组件的安装成本来说,学习Tkinter都将会少很多障碍,当然如果python都比维护自己的Tkinter那么我觉得python就不是python了,所以说Tkinter比较具有长远意义。当然学其他的也很好,可以扩展眼界。
和java的awt一样,我们发现tkinter和awt差别不大,主要是使用的姿势要变一下。以下是tkinter提供的组件,基本和java的awt没啥差别。
1.Label组件学习
import tkinter as tk# 拿到总窗口window=tk.Tk()#创建一个字符串wordTest=tk.StringVar()wordTest.set('测试label')# 设置标题window.title('Tkiner study')# window.geometry('500x300')# 设置窗口大小,长和window.geometry('1200x500')# 设置lable的名称,背景颜色,字体,宽长,lableOne=tk.Label(window,textvariable=wordTest,bg='red',font=('Arial',12),width=10,height=2)# 放置lablelableOne.pack()# 显示窗口window.mainloop()
2.Button组件学习
import tkinter as tk# 拿到总窗口window=tk.Tk()#定义一个字符串wordTest=tk.StringVar()#用于设置按钮的切换,走不同的逻辑hind=Truedef testButton(): print("点击了") global hind if hind==False: print("1") hind=True wordTest.set('tij') else: print("2") wordTest.set('please click me') hind=False# 设置标题window.title('tkinter study')# window.geometry('500x300')# 设置窗口大小window.geometry('888x500')# 设置lable的名称,背景颜色,字体,宽长,lableOne=tk.Label(window,textvariable=wordTest,bg='red',font=('Arial',12),width=10,height=2)# 创建一个按钮,并设置一个动作函数buttonOne=tk.Button(window,text='button',command=testButton)# 放置lablelableOne.pack()# 放置按钮buttonOne.pack()# 显示窗口window.mainloop()
3.Entry组件学习
entry是单行文本框,常用于账户或密码等长度不大的输入。
import tkinter as tkwindow=tk.Tk()# 设置窗口大小window.geometry('300x200')# 获取一个输入框,展示的时候显示&entry1=tk.Entry(window,show='&',font=('Arial', 14))# 获取一个输入框,展示的时候采用明文entry2=tk.Entry(window,show=None,font=('Arial', 14))entry1.pack()entry2.pack()window.mainloop()
4.Text多行文本框学习
import tkinter as tkdef insert_action():#获取输入框中的内容 var=insert.get() print(var) text.insert('insert',var)def insert_end_action(): var=insert.get() print(var) text.insert('end',var)window=tk.Tk()window.geometry('500x300')#输入一个输入框insert=tk.Entry(window,show=None)insert.pack()#定义一个多行文本框text=tk.Text(window,height=5)text.pack()#向文本框的光标所在位置插入button=tk.Button(window,text='insert',command=insert_action)#设置向文本框尾部插入buttonEnd=tk.Button(window,text='end',command=insert_end_action)button.pack()buttonEnd.pack()window.mainloop()
5.ListBox选择框学习
import tkinter as tkwindow=tk.Tk()window.geometry('500x500')window.title('test list box')showText=tk.StringVar()labelName=tk.Label(window,bg='red',width=30,textvariable=showText)labelName.pack()#单选双击事件def listenerOne(event): var=listBoxOne.get(listBoxOne.curselection()) print(var) showText.set(var) #多选情况的处理函数def multiSelect(): value='' for item in listBoxTwo.curselection(): var=listBoxTwo.get(item) value+=var showText.set(value)#单选模式listBoxOne=tk.Listbox(window)#多选模式listBoxTwo=tk.Listbox(window,selectmode=tk.EXTENDED)#绑定双击事件listBoxOne.bind('',listenerOne)lanaguage=['java','python','c','c++','js']for item in lanaguage: listBoxOne.insert('end',item) listBoxTwo.insert('end',item)listBoxOne.pack()listBoxTwo.pack()#多选情况下的按钮buttonOne=tk.Button(window,text='extended button',command=multiSelect)buttonOne.pack()window.mainloop()
6.Radiobutton单选按钮学习
import tkinter as tkwindow=tk.Tk()window.geometry('500x300')showText=tk.StringVar()var=tk.StringVar()labelOne=tk.Label(window,textvariable=showText,bg='red',width=50)labelOne.pack()def show(): showText.set(var.get())#定义几个单选框radio1=tk.Radiobutton(window,text='java',variable=var,value='1',command=show)radio2=tk.Radiobutton(window,text='python',variable=var,value='2',command=show)radio3=tk.Radiobutton(window,text='c',variable=var,value='3',command=show)radio1.pack()radio2.pack()radio3.pack()window.mainloop()
转载地址:http://lhkmi.baihongyu.com/