Я не могу сгенерировать случайное число и распечатать его - PullRequest
0 голосов
/ 05 июня 2018

Я не могу сгенерировать число, потому что я получаю ошибку NameError: имя 'z' не определено.

import tkinter as tk
from random import randint

def randomize():
    z.set ( randint(x.get(),y.get()))

root = tk.Tk()

x = tk.IntVar()
y = tk.IntVar()

text= tk.Label(root, text = "press the button for random number")
enterX = tk.Entry(root)
enterY = tk.Entry(root)
button = tk.Button(root, text = "Press here", command=randomize)
result = tk.Label(root,text="Number is:")
number = tk.Label(root, textvariable=z)

text.pack()
enterX.pack()
enterY.pack()
button.pack()
result.pack()
number.pack()

root.mainloop()

Мне нужна помощь, чтобы устранить ошибку

1 Ответ

0 голосов
/ 05 июня 2018

У вас 2 проблемы здесь.

Одна.Вам не хватает z = tk.Intvar() в глобальном пространстве имен.

Два.Каждому полю ввода необходимо присвоить одно из значений IntVar ().

Имейте в виду, что вы не проверяете поля ввода, поэтому, если кто-то введет что-либо, кроме целого числа, вы столкнетесь с ошибкой.

Посмотрите на этот код.

import tkinter as tk
from random import randint

def randomize():
    z.set(randint(x.get(),y.get()))
    print(z.get()) # added print statement to verify results.

root = tk.Tk()

x = tk.IntVar()
y = tk.IntVar()
z = tk.IntVar() # added IntVar()

text= tk.Label(root, text = "press the button for random number")
enterX = tk.Entry(root, textvariable=x) # added textvariable
enterY = tk.Entry(root, textvariable=y) # added textvariable
button = tk.Button(root, text = "Press here", command=randomize)
result = tk.Label(root,text="Number is:")
number = tk.Label(root, textvariable=z)

text.pack()
enterX.pack()
enterY.pack()
button.pack()
result.pack()
number.pack()

root.mainloop()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...