将变量传递给Python中的另一个变量tkinter
我想传递水果的值,这样我就可以将其打印为将变量传递给Python中的另一个变量tkinter,python,tkinter,Python,Tkinter,我想传递水果的值,这样我就可以将其打印为如果选择了苹果,则您的水果是苹果,如果两者都选择,则您的水果是苹果橙。也许我应该使用数组 from tkinter import * from tkinter import ttk import tkinter as tk app = tk.Tk() def show(): fruit="" if apple.get()==1: fruit = "apple" if ora
如果选择了苹果,则您的水果是苹果
,如果两者都选择,则您的水果是苹果橙
。也许我应该使用数组
from tkinter import *
from tkinter import ttk
import tkinter as tk
app = tk.Tk()
def show():
fruit=""
if apple.get()==1:
fruit = "apple"
if orange.get()==1:
fruit = "orange"
msg = "your fruit is %s"%fruit
print(msg)
Label(app, text="fruit selected").grid(row=4,column=0, sticky=W)
apple = IntVar()
Checkbutton(app, text="apple", variable=apple,command = show).grid(row=4,column=1, sticky=W)
orange = IntVar()
Checkbutton(app, text="orange", variable=orange).grid(row=4,column=2, sticky=W)
#size
app.title('Basic message')
app.geometry("700x500")
app.mainloop()
您忘记添加command=ShowinOrange复选框。 此外,如果选中一个或多个复选框,则最好只打印消息
from tkinter import *
from tkinter import ttk
import tkinter as tk
app = tk.Tk()
def show():
fruit=""
if apple.get()==1:
fruit = "apple"
if orange.get()==1:
fruit = "orange"
if orange.get()==1 or apple.get()==1:
msg = "your fruit is %s"%fruit
print(msg)
Label(app, text="fruit selected").grid(row=4,column=0, sticky=W)
apple = IntVar()
Checkbutton(app, text="apple", variable=apple,command = show).grid(row=4,column=1, sticky=W)
orange = IntVar()
Checkbutton(app, text="orange", variable=orange, command = show).grid(row=4,column=2, sticky=W)
#size
app.title('Basic message')
app.geometry("700x500")
app.mainloop()
如果您想添加更多框,我还建议您使用数组或列表。
你也可以考虑使用一个类来做更好的“变量管理”,有很多方法可以做到这一点,但是让我们先在你的例子中这样做。只需添加一行并对
show
函数进行一些改进,即可获得所需的结果
def show():
果=“”
如果apple.get()和orange.get():
水果=‘苹果橙’
elif apple.get():
水果=“苹果”
elif orange.get():
水果=“橙色”
msg=“您的水果是%s”%fruit
打印(msg)
但是整个代码可以改进,使用for循环创建不同的水果Checkbutton
s,并将它们的变量IntVar
保存为var
,这将便于以后访问,最后将这些Checkbutton保存在列表中,以便在show
函数中访问它们。逻辑很简单,我只是检查勾选了哪个checkbutton,并将它们的文本添加到fruit
变量中
从tkinter导入*
从tkinter导入ttk
将tkinter作为tk导入
app=tk.tk()
ckb_列表=[]
def show():
f=“”
对于ckb_列表中的ckb:
如果ckb.var.get():
f+=ckb['text']+''
msg=“您的水果是%s”%f
打印(msg)
标签(app,text=“所选水果”).grid(行=4,列=0,粘性=W)
对于col,列举水果((‘苹果’、‘橘子’、‘香蕉’、‘芒果’):
ckb=检查按钮(应用程序,文本=水果,命令=显示)
ckb.var=ckb['variable']=IntVar()
ckb.grid(行=4,列=col+1,粘性=W)
ckb_列表追加(ckb)
#大小
应用程序标题(“基本消息”)
附录几何(“700x500”)
app.mainloop()
yes生成全局阵列如此添加命令=在第二个选中按钮中显示