tkinter 语法理解
tkinter syntax comprehension
我是新手,一直在慢慢尝试学习一些 tkinter,我已经找到了一些用于基本项目的不错的资源,但是代码的解释有点缺乏,我希望有人能帮助我了解一些我拼凑的东西。
完整代码
from tkinter import *
#Create window and give it title
root = Tk()
root.title('Tip Calculator - Charlie')
#define the window sizes
window_width = 600
window_height = 400
#get the screen size
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
#solve for center of screen based on window & screen Size
center_x = int(screen_width/2 - window_width/2)
center_y = int(screen_height/2 - window_height/2)
#implement the above to position window width/height
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')
var = IntVar()
frame = LabelFrame(root,text = "Tip %")
frame.pack(pady=10)
r1 = Radiobutton(frame, text = 'no Tip', variable = var, value = 0)
r1.grid(column =0, row =1)
r2= Radiobutton(frame, text = '10 %', variable = var, value = 1)
r2.grid(column=0, row =2)
r3=Radiobutton(frame, text = '15 %', variable = var, value = 2)
r3.grid(column=1, row = 1)
r4= Radiobutton(frame, text = '20 %', variable = var, value =3)
r4.grid(column=1, row=2)
有问题的代码
var = IntVar()
frame = LabelFrame(root,text = "Tip %")
frame.pack(pady=10)
r1 = Radiobutton(frame, text = 'no Tip', variable = var, value = 0)
r1.grid(column =4, row =1)
r2= Radiobutton(frame, text = '%', variable = var, value = 1)
r2.grid(column=4, row =2)
所以我在某种程度上理解 r1 是“单选按钮”的变量名称,文本设置为按钮旁边弹出的内容。
问题是什么 variable = var, value = 1
前 3 行我不知所措为什么要创建一个名为 var 的变量以及设置它 = IntVar() 有什么作用?
框架是一个小部件吗?我假设 pack 是定位(网格)的另一个版本?
这个页面会给你很好的解释radio widget
Var 用于建立整数变量而不是字符串变量。 (IntVar() 与 StringVar())。通读该文档中的解释,让我知道它是否仍然没有意义。至于你对 pack() 的质疑,它只是一种快速方法,如果你没有指定任何其他内容,它实际上会将小部件打包在中心和顶部。
variable = var
表示当单选按钮被selected时,var
变量中的IntVar
应该被赋予这个单选按钮的值。 value
选项指定应该用于每个单选按钮的值。
所以在 select no Tip
单选按钮之后,var.get()
将是 0
。在您 select 按 %
按钮后,var.get()
将是 1
。这就是您如何找出他们使用单选按钮做出的选择。
后面的代码你可以这样写:
if var.get() == 0:
tip = 0
elif var.get() == 1:
tip = 0.10 * total_price
elif var.get() == 2:
tip = 0.15 * total_price
elif var.get() == 3:
tip = 0.20 * total_price
price_with_tip = total_price + tip
pack()
是一个几何管理器,是 grid()
和 place()
的替代品。看到这个 tutorial
为了回答您的后续问题,我认为这将有助于您处理后续步骤。
from tkinter import *
def get_value():
tab = 50 # set to 50 but could get a value from entry if you want
choice = var.get()
print(choice) # print your choice for clarification
ten_percent = tab * .1 # math for tip
total = ten_percent + tab
if choice == 1:
print("Your total plus tip is:", total)
print("Your tip amount was:", ten_percent)
#Create window and give it title
root = Tk()
root.title('Tip Calculator - Charlie')
#define the window sizes
window_width = 600
window_height = 400
#get the screen size
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
#solve for center of screen based on window & screen Size
center_x = int(screen_width/2 - window_width/2)
center_y = int(screen_height/2 - window_height/2)
#implement the above to position window width/height
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')
var = IntVar()
frame = LabelFrame(root,text = "Tip %")
frame.pack(pady=10)
r1 = Radiobutton(frame, text = 'no Tip', variable = var, value = 0)
r1.grid(column =0, row =1)
r2= Radiobutton(frame, text = '10 %', variable = var, value = 1)
r2.grid(column=0, row =2)
r3=Radiobutton(frame, text = '15 %', variable = var, value = 2)
r3.grid(column=1, row = 1)
r4= Radiobutton(frame, text = '20 %', variable = var, value =3)
r4.grid(column=1, row=2)
button = Button(root, text="Check", command= get_value)
button.pack()
我是新手,一直在慢慢尝试学习一些 tkinter,我已经找到了一些用于基本项目的不错的资源,但是代码的解释有点缺乏,我希望有人能帮助我了解一些我拼凑的东西。
完整代码
from tkinter import *
#Create window and give it title
root = Tk()
root.title('Tip Calculator - Charlie')
#define the window sizes
window_width = 600
window_height = 400
#get the screen size
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
#solve for center of screen based on window & screen Size
center_x = int(screen_width/2 - window_width/2)
center_y = int(screen_height/2 - window_height/2)
#implement the above to position window width/height
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')
var = IntVar()
frame = LabelFrame(root,text = "Tip %")
frame.pack(pady=10)
r1 = Radiobutton(frame, text = 'no Tip', variable = var, value = 0)
r1.grid(column =0, row =1)
r2= Radiobutton(frame, text = '10 %', variable = var, value = 1)
r2.grid(column=0, row =2)
r3=Radiobutton(frame, text = '15 %', variable = var, value = 2)
r3.grid(column=1, row = 1)
r4= Radiobutton(frame, text = '20 %', variable = var, value =3)
r4.grid(column=1, row=2)
有问题的代码
var = IntVar()
frame = LabelFrame(root,text = "Tip %")
frame.pack(pady=10)
r1 = Radiobutton(frame, text = 'no Tip', variable = var, value = 0)
r1.grid(column =4, row =1)
r2= Radiobutton(frame, text = '%', variable = var, value = 1)
r2.grid(column=4, row =2)
所以我在某种程度上理解 r1 是“单选按钮”的变量名称,文本设置为按钮旁边弹出的内容。
问题是什么 variable = var, value = 1
前 3 行我不知所措为什么要创建一个名为 var 的变量以及设置它 = IntVar() 有什么作用?
框架是一个小部件吗?我假设 pack 是定位(网格)的另一个版本?
这个页面会给你很好的解释radio widget
Var 用于建立整数变量而不是字符串变量。 (IntVar() 与 StringVar())。通读该文档中的解释,让我知道它是否仍然没有意义。至于你对 pack() 的质疑,它只是一种快速方法,如果你没有指定任何其他内容,它实际上会将小部件打包在中心和顶部。
variable = var
表示当单选按钮被selected时,var
变量中的IntVar
应该被赋予这个单选按钮的值。 value
选项指定应该用于每个单选按钮的值。
所以在 select no Tip
单选按钮之后,var.get()
将是 0
。在您 select 按 %
按钮后,var.get()
将是 1
。这就是您如何找出他们使用单选按钮做出的选择。
后面的代码你可以这样写:
if var.get() == 0:
tip = 0
elif var.get() == 1:
tip = 0.10 * total_price
elif var.get() == 2:
tip = 0.15 * total_price
elif var.get() == 3:
tip = 0.20 * total_price
price_with_tip = total_price + tip
pack()
是一个几何管理器,是 grid()
和 place()
的替代品。看到这个 tutorial
为了回答您的后续问题,我认为这将有助于您处理后续步骤。
from tkinter import *
def get_value():
tab = 50 # set to 50 but could get a value from entry if you want
choice = var.get()
print(choice) # print your choice for clarification
ten_percent = tab * .1 # math for tip
total = ten_percent + tab
if choice == 1:
print("Your total plus tip is:", total)
print("Your tip amount was:", ten_percent)
#Create window and give it title
root = Tk()
root.title('Tip Calculator - Charlie')
#define the window sizes
window_width = 600
window_height = 400
#get the screen size
screen_width = root.winfo_screenwidth()
screen_height = root.winfo_screenheight()
#solve for center of screen based on window & screen Size
center_x = int(screen_width/2 - window_width/2)
center_y = int(screen_height/2 - window_height/2)
#implement the above to position window width/height
root.geometry(f'{window_width}x{window_height}+{center_x}+{center_y}')
var = IntVar()
frame = LabelFrame(root,text = "Tip %")
frame.pack(pady=10)
r1 = Radiobutton(frame, text = 'no Tip', variable = var, value = 0)
r1.grid(column =0, row =1)
r2= Radiobutton(frame, text = '10 %', variable = var, value = 1)
r2.grid(column=0, row =2)
r3=Radiobutton(frame, text = '15 %', variable = var, value = 2)
r3.grid(column=1, row = 1)
r4= Radiobutton(frame, text = '20 %', variable = var, value =3)
r4.grid(column=1, row=2)
button = Button(root, text="Check", command= get_value)
button.pack()