Tkinter学习笔记(一)

2020-11-02 11:40:30 浏览数 (1)

学习python的意义在于python提供很多数据分析的包,所以如果不是为了搬砖,那么python就是最好的选择。但是学了那么多总归要给别人展示吧。所以图形界面开发是一个必要的技能。这里不讨论其他的选项,就是为了学python。

Tkinter是python自带的一款GUI组件,所以相对于其他的各种组件的安装成本来说,学习Tkinter都将会少很多障碍,当然如果python都比维护自己的Tkinter那么我觉得python就不是python了,所以说Tkinter比较具有长远意义。当然学其他的也很好,可以扩展眼界。

和java的awt一样,我们发现tkinter和awt差别不大,主要是使用的姿势要变一下。以下是tkinter提供的组件,基本和java的awt没啥差别。

1.Label组件学习

代码语言:javascript复制
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)
# 放置lable
lableOne.pack()
# 显示窗口
window.mainloop()

2.Button组件学习

代码语言:javascript复制
import tkinter as tk
# 拿到总窗口
window=tk.Tk()
#定义一个字符串
wordTest=tk.StringVar()
#用于设置按钮的切换,走不同的逻辑
hind=True
def 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)
# 放置lable
lableOne.pack()
# 放置按钮
buttonOne.pack()
# 显示窗口
window.mainloop()

3.Entry组件学习

entry是单行文本框,常用于账户或密码等长度不大的输入。

代码语言:javascript复制
import tkinter as tk

window=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多行文本框学习

代码语言:javascript复制
import tkinter as tk

def 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选择框学习

代码语言:javascript复制
import tkinter as tk

window=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('<Double-Button-1>',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单选按钮学习

代码语言:javascript复制
import tkinter as tk

window=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()

0 人点赞