Radiobutton
按钮选项参数的说明:
根据分析首先需要导入自带库,并且创建两个输入窗口。
如果你需要在后续的代码中使用e1和e2对象,应该将grid()方法单独写在一行上
import tkinter as tk #首先导入库
# 1.创建tkinter的根窗口
root = tk.Tk()
#在输入框前面增加两个值
tk.Label(root, text="第一个值").grid(row=0)
tk.Label(root, text="第二个值").grid(row=1)
#2, 按照布局来说, 就需要创建两个输入框
#2.1 注意不能这么使用e1 = tk.Entry(root).grid(row=0, column=2, padx=10, pady=10)
e1 = tk.Entry(root)
e1.grid(row=0,column=2,padx=15,pady=10)
e2 = tk.Entry(root)
e2.grid(row=1,column=2,padx=15,pady=10)
#2.1 开始布局
# 2.循环显示 根窗口
root.mainloop()
'''
使用tkinter
'''
import tkinter as tk
# 1.创建tkinter的根窗口
root = tk.Tk()
tk.Label(root, text="第一个值").grid(row=0)
tk.Label(root, text="第二个值").grid(row=1)
#2, 按照布局来说, 就需要创建两个输入框
e1 = tk.Entry(root)
e1.grid(row=0,column=2,padx=15,pady=10)
e2 = tk.Entry(root)
e2.grid(row=1,column=2,padx=15,pady=10)
#2.1 开始布局
#3. 设置变量名
radio = tk.IntVar()
#3.1 选择单选按钮
r1 = tk.Radiobutton(root,text="加法",variable=radio,value=1)
r1.grid(row =2,column =1)
r2 = tk.Radiobutton(root,text="减法",variable=radio,value=2)
r2.grid(row =2,column =2)
r3 = tk.Radiobutton(root,text="乘法",variable=radio,value=3)
r3.grid(row =2,column =3)
r4 = tk.Radiobutton(root,text="除法",variable=radio,value=4)
r4.grid(row =2,column =4)
#tk.Radiobutton(root, variable=var, value=1)
# 2.循环显示 根窗口
root.mainloop()
在tkinter上显示文字或者图片的话, 就需要使用组件Lable。
# 4. 计算结果的区域,显示计算区域
l1 = tk.Label(root, text="计算结果区域")
l1.grid(row=4,column = 1,columnspan=2,pady=10)
在 设计完计算器输入界面 之后,需要使用提交按钮和计算方法将上面的值进行计算。
如果你需要在后续的代码中使用e1对象,应该将grid()方法单独写在一行上
# 6. 方法创建
def func():
'''
计算器方法调用
:return:
'''
# 通过get()来获取Entry中的值
num_1 = int(e1.get())
num_2 = int(e2.get())
# 获取定义的RadioButton中的变量值
v = radio.get()
# 进行 逻辑分析
if v == 1: # 相当于选中了 加法的radio
res = num_2 + num_1
elif v == 2:
res = num_1 - num_2
elif v == 3:
res = num_1 * num_2
elif v == 4:
res = num_1 / num_2
l1.config(text=res)
# 5. 设置按钮提交计算
# 5.1 command 后面接的就是方法名。
b1 = tk.Button(root, text="提交计算", command=func)
b1.grid(row=5, column=1, columnspan=2, pady=10)
将上述的步骤组合在一起, 一定要注意, grid不要连接组件使用。
注意,grid()
方法返回None,所以将其赋值给e1
变量后,e1
将成为None。如果你需要在后续的代码中使用e1
对象,应该将grid()
方法单独写在一行上,例如:
e1 = tk.Entry(root)
e1.grid(row=0, column=2, padx=10, pady=10)
全部代码:
'''
使用tkinter
'''
import tkinter as tk
# 1.创建tkinter的根窗口
root = tk.Tk()
tk.Label(root, text="第一个值").grid(row=0)
tk.Label(root, text="第二个值").grid(row=1)
# 2, 按照布局来说, 就需要创建两个输入框
e1 = tk.Entry(root)
e1.grid(row=0, column=2, padx=10, pady=10)
e2 = tk.Entry(root)
e2.grid(row=1, column=2, padx=10, pady=10)
# 2.1 开始布局
# 3. 设置变量名
radio = tk.IntVar()
# 3.1 选择单选按钮
r1 = tk.Radiobutton(root, text="加法", variable=radio, value=1)
r1.grid(row=2, column=1)
r2 = tk.Radiobutton(root, text="减法", variable=radio, value=2)
r2.grid(row=2, column=2)
r3 = tk.Radiobutton(root, text="乘法", variable=radio, value=3)
r3.grid(row=2, column=3)
r4 = tk.Radiobutton(root, text="除法", variable=radio, value=4)
r4.grid(row=2, column=4)
# 4. 计算结果的区域,显示计算区域
l1 = tk.Label(root, text="计算结果区域")
l1.grid(row=4, column=1, columnspan=2, pady=10)
# 6. 方法创建
def func():
'''
计算器方法调用
:return:
'''
# 6.1通过get()来获取Entry中的值
num_1 = int(e1.get())
num_2 = int(e2.get())
# 获取定义的RadioButton中的变量值
v = radio.get()
# 进行 逻辑分析
if v == 1: # 相当于选中了 加法的radio
res = num_2 + num_1
#l1.config(text = (num_1+num_2)) #也可以直接返回值。
elif v == 2:
res = num_1 - num_2
elif v == 3:
res = num_1 * num_2
elif v == 4:
res = num_1 / num_2
l1.config(text=res)
# 5. 设置按钮提交计算
# 5.1 command 后面接的就是方法名。
b1 = tk.Button(root, text="提交计算", command=func)
b1.grid(row=5, column=1, columnspan=2, pady=10)
# 2.循环显示 根窗口
root.mainloop()
能显示在窗口上的tkinter组件 Label
import tkinter as tk
# 1.创建TK对象,作为主窗口 root
root = tk.Tk()
# 2.将文字显示到窗口上
lable1 = tk.Label(root, text="一张50 ,一张100,请选择你要哪张?")
# 之前学习的布局方式。
# lable1.grid(row =0,column=1)
# 自动调整位置和大小
lable1.pack()
# 3. 创建绑定变量,用于存储选择框的状态
v_1 = tk.IntVar()
# variable 是窗口状态,选择还是没选择
c1 = tk.Checkbutton(root, text="50$", variable=v_1)
c1.pack(anchor="w")
# 创建第二个窗口,变量绑定的状态。
v_2 = tk.IntVar()
c2 = tk.Checkbutton(root, text="100$", variable=v_2)
c2.pack(anchor="w")
# 回调方法
def func():
#获取checkbox选择,状态
a = v_1.get()
b = v_2.get()
if a and b :
l1.config(text="真聪明")
elif a:
l1.config(text="还有100$")
elif b:
l1.config(text="还有50$")
else:
l1.config(text="怎么滴,地上有钱也不要...")
# 显示区域
l1 = tk.Label(root, text="请选择")
l1.pack()
# 按钮
b1 =tk.Button(root, text="确定", command=func)
b1.pack()
# 1.1 循环执行事件,等待窗口关闭发生
tk.mainloop()
anchor 属性用于指定部件在其父容器中的锚点位置。它可以用来控制部件在界面中的对齐方式。
anchor
属性,可以将部件放置在所需的位置,使其对齐或停靠到指定的位置。anchor
属性的可选值有:默认情况下,anchor
属性的值是’center’,表示部件在父容器中居中对齐。'center':将部件的中心与其父容器的中心对齐。
'n':将部件的顶部边界与其父容器的顶部边界对齐。
's':将部件的底部边界与其父容器的底部边界对齐。
'e':将部件的右侧边界与其父容器的右侧边界对齐。
'w':将部件的左侧边界与其父容器的左侧边界对齐。
'nw':将部件的左上角与其父容器的左上角对齐。
'ne':将部件的右上角与其父容器的右上角对齐。
'sw':将部件的左下角与其父容器的左下角对齐。
'se':将部件的右下角与其父容器的右下角对齐。
河神发现你掉了一把斧头到水里?
import tkinter as tk
# 1.创建TK对象,作为主窗口 root
root = tk.Tk()
# 2.将文字显示到窗口上
lable1 = tk.Label(root, text="少年啊! 你掉的是这个铁斧头,还是银斧头,还是这把金斧头?")
# 之前学习的布局方式。
# lable1.grid(row =0,column=1)
# 自动调整位置和大小
lable1.pack()
# 3. 创建绑定变量,用于存储选择框的状态
v_1 = tk.IntVar()
# variable 是窗口状态,选择还是没选择
c1 = tk.Checkbutton(root, text="铁斧头", variable=v_1)
c1.pack(anchor="w")
# 创建第二个窗口,变量绑定的状态。
v_2 = tk.IntVar()
c2 = tk.Checkbutton(root, text="银斧头", variable=v_2)
c2.pack(anchor="w")
#趣味问答,添加一个checkbox
v_3= tk.IntVar()
c3 = tk.Checkbutton(root, text="金钥匙", variable=v_3)
c3.pack(anchor="w")
# 回调方法
def func():
#获取checkbox选择,状态
a = v_1.get()
b = v_2.get()
c = v_3.get()
if a and b and c :
l1.config(text="少年啊,你可真贪心啊")
elif a :
l1.config(text="好诚实的少你啊")
elif b:
l1.config(text="金斧头不考虑一下")
elif c:
l1.config(text="好聪明的少年啊!")
else:
l1.config(text="怎么什么都不要")
# 显示区域
l1 = tk.Label(root, text="哪把斧头是你的?")
l1.pack()
# 按钮
b1 =tk.Button(root, text="确定", command=func)
b1.pack()
# 1.1 循环执行
tk.mainloop()