Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将Tkinter条目中的值赋给Python变量_Python_Input_Tkinter_User Input - Fatal编程技术网

将Tkinter条目中的值赋给Python变量

将Tkinter条目中的值赋给Python变量,python,input,tkinter,user-input,Python,Input,Tkinter,User Input,我目前正在学习python,遇到了一个障碍。我从java开始,喜欢在输入对话框中使用JOptionPane,并使用这些对话框为变量赋值并从中解析变量 在python中,我注意到人们使用Tkinter进行最基本的gui设置,但是我找不到关于如何使用Tkinter创建的文本框为变量赋值的很多信息。我的代码如下: import random import tkinter as tk def guess(): global entry guess = entry.get() g

我目前正在学习python,遇到了一个障碍。我从java开始,喜欢在输入对话框中使用JOptionPane,并使用这些对话框为变量赋值并从中解析变量

在python中,我注意到人们使用Tkinter进行最基本的gui设置,但是我找不到关于如何使用Tkinter创建的文本框为变量赋值的很多信息。我的代码如下:

import random
import tkinter as tk

def guess():
    global entry
    guess = entry.get()
    guessN = int(guess)


root1 = tk.Tk()

label = tk.Label(root1, text='What number am I thinking of between 1 and 100?')
entry = tk.Entry(root1)
entry.focus_set()

b = tk.Button(root1,text='okay',command=guess)
b.pack(side='bottom')

label.pack(side = tk.TOP)
entry.pack()

root1.mainloop():

x = random.randint(1,101)

guess()
tries = 0

while guessN != x:
    if (guessN < x):
        guess = input("Too low! Try again.")
        guessN = int(guess)
        tries += 1
    else:
        guess = input("Too high! Try again.")
        guessN = int(guess)        
        tries += 1

print('Congratulations you guessed the number', x, 'in', tries, 'tries!')
SystemExit
随机导入
将tkinter作为tk导入
def guess():
全球进入
guess=entry.get()
猜测n=int(猜测)
root1=tk.tk()
label=tk.label(root1,text='1和100之间的数字是多少?'))
entry=tk.entry(root1)
entry.focus_set()
b=tk.Button(root1,text='ok',command=guess)
b、 包装(侧面=底部)
标签包装(侧面=顶部)
entry.pack()
root1.mainloop():
x=random.randint(1101)
猜()
尝试=0
而猜x:
如果(n
我想使用tkinter将输入分配给guess,然后使用guessN检查随机生成的数字。我真的不知道该从这里走到哪里,或者如何持续检查,如果猜测不正确,如何重新分配变量。

手动 根据:

首先,您可以使用

entry.get()
其次,您可以将它绑定到
tkinter.Variable
(它创建并包装一个带有自动生成名称的Tcl全局变量)。通常使用它的子类
StringVar
——它在获取/设置时将值转换为
str

v = tkinter.StringVar()
entry = tk.Entry(root1, textvariable=v)

<...>
value = v.get()
对于
回调
来说,一个不那么麻烦的解决方案是将回调作为
变量
的实例方法——这样,它将通过
self
获得对它的引用,而不必构造新的类实例。该值也可以作为实例属性:

def callback(self,*args):
    try: self.value=self.get()
    except ValueError: self.value=None

v.callback=callback
v.trace_add("write",v.callback)
请注意,每次更改时都会调用此函数(即,即使在键入值时),因此可能会导致GUI反应出现明显延迟。因此,除非您真的需要不断地监视该值,否则在适当的时刻只需读取一次就足够了。

手动 根据:

首先,您可以使用

entry.get()
其次,您可以将它绑定到
tkinter.Variable
(它创建并包装一个带有自动生成名称的Tcl全局变量)。通常使用它的子类
StringVar
——它在获取/设置时将值转换为
str

v = tkinter.StringVar()
entry = tk.Entry(root1, textvariable=v)

<...>
value = v.get()
对于
回调
来说,一个不那么麻烦的解决方案是将回调作为
变量
的实例方法——这样,它将通过
self
获得对它的引用,而不必构造新的类实例。该值也可以作为实例属性:

def callback(self,*args):
    try: self.value=self.get()
    except ValueError: self.value=None

v.callback=callback
v.trace_add("write",v.callback)
请注意,每次更改时都会调用此函数(即,即使在键入值时),因此可能会导致GUI反应出现明显延迟。因此,除非您真的需要不断地监视该值,否则在适当的时刻只读取一次就足够了。

root1.mainloop():
不是有效的Python btw。
root1.mainloop():
不是有效的Python btw。