GUI按钮和条目小部件问题

时间:2018-03-29 06:53:19

标签: function user-interface button tkinter widget

所以我似乎已经解决了我上一篇文章中的一些问题,但是已经创建了新的帖子。

到目前为止,我已经创建了这个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小部件生成一个新的随机数,清除当前的数字并弹出一个新的?就目前而言,虽然被指定执行一个函数,但该按钮似乎没什么......

由于

1 个答案:

答案 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()