此代码只是返回一个错误。我不知道如何为这个随机数生成器组合 int()
和 .get()
。 .get()
用于获取输入的数字并将其用作某人希望从中输出随机数的变量。
from tkinter import *
import tkinter as tk
import random
root = tk.Tk()
root.title("random number generator")
def new_number():
text.config(text=random.randint(0, 100), font=("times", 50))
tb1 = Entry(root)
tb2 = Entry(root)
tb1.grid(row=0, column=3)
tb2.grid(row=0, column=0)
text = tk.Label(root, text=random.randint(int(tb1.get()), int(tb2.get())), font=("times", 50))
text.grid(row=1, column=2)
button = tk.Button(root, text="New number", width=15, command=new_number, font=("times", 50))
button.grid(row=2, column=2)
root.mainloop()
答案 0 :(得分:1)
您需要设置默认值。当您使用:
text = tk.Label(root, text=random.randint(int(tb1.get()), int(tb2.get())), font=("times", 50))
tb1.get() 和 tb2.get() 为空。
解决方案:
from tkinter import *
import tkinter as tk
import random
root = tk.Tk()
root.title("random number generator")
def new_number():
text.config(text=str(random.randint(int(tb1.get()), int(tb2.get()))), font=("times", 50))
tb1 = Entry(root)
tb2 = Entry(root)
tb1.grid(row=0, column=3)
tb2.grid(row=0, column=0)
tb1.insert(10, 0)
tb2.insert(10, 100)
text = tk.Label(root, text=str(random.randint(int(tb1.get()), int(tb2.get()))), font=("times", 50))
text.grid(row=1, column=2)
button = tk.Button(root, text="New number", width=15, command=new_number, font=("times", 50))
button.grid(row=2, column=2)
root.mainloop()
答案 1 :(得分:0)
您必须为 tb1
和 tb2
条目小部件插入一个整数。当您定义变量 text
时,您试图获取 tb1
的 int,但它不起作用,因为其中没有任何内容。因此,您应该在创建 text
变量之前插入一个整数。
代码:
from tkinter import *
import tkinter as tk
import random
root = tk.Tk()
root.title("random number generator")
def new_number():
text.config(text=random.randint(0, 100), font=("times", 50))
tb1 = Entry(root)
tb2 = Entry(root)
tb1.grid(row=0, column=3)
tb2.grid(row=0, column=0)
# Insert a number to each input box
tb1.insert(END, 1)
tb2.insert(END, 2)
text = tk.Label(root, text=random.randint(int(tb1.get()), int(tb2.get())), font=("times", 50))
text.grid(row=1, column=2)
button = tk.Button(root, text="New number", width=15, command=new_number, font=("times", 50))
button.grid(row=2, column=2)
root.mainloop()
答案 2 :(得分:0)
如果你使用这个:
from tkinter import *
import tkinter as tk
import random
root = tk.Tk()
root.title("random number generator")
def new_number():
try:
lower_bound = int(tb1.get())
upper_bound = int(tb2.get())
assert upper_bound >= lower_bound, "Make sure that the lower bound is lower"
text.config(text=random.randint(lower_bound, upper_bound))
except AssertionError:
text.config(text="Lower abound must be lower")
except ValueError:
text.config(text="Invalid data")
tb1 = Entry(root)
tb2 = Entry(root)
tb1.grid(row=0, column=0)
tb2.grid(row=0, column=3)
text = tk.Label(root, text="Random number", font=("times", 50))
text.grid(row=1, column=2)
button = tk.Button(root, text="New number", width=15, command=new_number,
font=("times", 50))
button.grid(row=2, column=2)
root.mainloop()
它将处理所有错误。