所以我似乎已经解决了我上一篇文章中的一些问题,但是已经创建了新的帖子。
到目前为止,我已经创建了这个GUI:
import random
import string
import tkinter as tk
window=tk.Tk()
window.geometry('200x50+650+300')
var=tk.IntVar()
def generate(size=4, chars=string.octdigits):
x=(''.join(random.choice(chars) for x in range(4)))
print(x)
var.set(x)
def code(func):
x=var.get()
entry.insert(0,str(func()))
entry=tk.Entry(width=5,textvariable=(var), justify='center')
entry.pack()
button=tk.Button(text='GENERATE', command=(code(generate)))
button.pack()
window.mainloop()
运行时,窗口将弹出并打印正确的结果(随机生成的4位数字(打印(x)的结果),但在Entry小部件中显示“None1234”
“无”来自何处以及如何摆脱它?另外,如何使用空白Entry小部件启动窗口? - 这只是改变国家的问题?此外,每次按下按钮时,任何人都可以提示我如何使用GUI按钮为Entry小部件生成一个新的随机数,清除当前的数字并弹出一个新的?就目前而言,虽然被指定执行一个函数,但该按钮似乎没什么......
由于
答案 0 :(得分:0)
无出现,因为生成数字的函数没有指定返回值。
import random
import string
import tkinter as tk
window=tk.Tk()
window.geometry('200x50+650+300')
def generate(size=4, chars=string.octdigits):
x=''.join(random.choice(chars) for x in range(size))
print(x)
return x
def code(func):
entry.delete(0,'end')
entry.insert(0,str(func()))
entry=tk.Entry(width=10,justify='center')
entry.pack()
button=tk.Button(text='GENERATE', command=lambda :code(generate))
button.pack()
window.mainloop()