python tkinter美化_Tkinter(python的原生UI库)学习(一)

因为大作业要做界面,只好学一下,就算是记录一下。

关于Tkinter可以看百度百科Tkinter_百度百科​baike.baidu.com

废话不说直接上代码

import tkinter as tk

from tkinter import ttk#可以理解为各种控件的集合吧,哈哈

win = tk.Tk()#实例化一个窗口对象

aLabel = ttk.Label(win, text="A Label")#在窗口上创建一个label

aLabel.grid(column = 0,row = 0)#label在第一行第一列

def clickMe():

action.configure(text = "**I have been Clicked**")#action是模块级变量

aLabel.configure(foreground = 'blue')

action = ttk.Button(win,text = "Click Me!",command = clickMe)

action.grid(column = 1,row = 0)

win.mainloop()#保证循环

action这个东西很奇怪

他是在前面函数体中第一次出现,但是声明却在后面,按照官方的说法,这是一个模块级的变量,所以只要在函数调用前定义一下就可以用了。

aLabel.grid(column = 0,row = 0)这个column,row可以看做是控件所在的行列位置

我们点一下会看到颜色变化:

下面看第二个栗子:

import tkinter as tk

from tkinter import ttk

win = tk.Tk()

# aLabel = ttk.Label(win, text="A Label")

# aLabel.grid(column = 0,row = 0)

def clickMe():

action.configure(text = "hello "+name.get())#action是模块级变量

if __name__=='__main__':

action = ttk.Button(win, text="Click Me!", command=clickMe)

action.grid(column = 1,row=1)

ttk.Label(win,text="Enter a name:").grid(column = 0,row=0)

name = tk.StringVar()

nameEntered = ttk.Entry(win,width = 20,textvariable = name)

nameEntered.grid(column = 0,row =1)

win.mainloop()

还是上面的问题:这个action是个啥?既不是全局变量,又不是传入的参数。

其实这是个回调函数(callback)当按钮被点击的时候,变量的确也就存在了,所以我们不用担心他没有声明的问题。

下面这一句:

ttk.Label(win,text="Enter a name:").grid(column = 0,row=0)

是在第0行第0列放置一个label,关于布局(layout management)我们会在后文详述。

关于name的原理同上,也是在按钮按下时回调,值得注意的是这个类型:StringVar(它不是严格意义上的python类型而是这个库下面的类型)StringVar的作用

查询了很多资料,我们在使用界面编程的时候,有些时候是需要跟踪变量的值的变化,以保证值的变更随时可以显示在界面上。由于python无法做到这一点,所以使用了tcl的相应的对象,也就是StringVar、BooleanVar、DoubleVar、IntVar所需要起到的作用

然后,我们把name变量绑定到了Entry(我们不难推测,这是一个输入框),下一句是这个输入框的位置

最后一句窗口循环。(卧槽解释了这么多)

结果如图:点击一下

总结一下,这第一篇我们 了解了ttk下的控件 label,button ,entry 以及基本的布局

还有一个类型StringVar,以及总重要的,回调函数的理解。

我们下篇债见。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值