前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Tkinter学习笔记(一)

Tkinter学习笔记(一)

作者头像
写一点笔记
发布2020-11-02 11:40:30
1K0
发布2020-11-02 11:40:30
举报
文章被收录于专栏:程序员备忘录

学习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()
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-10-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 程序员备忘录 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档