正在尝试将列表项添加到tkin中的textbox

2024-10-01 07:50:57 发布

您现在位置:Python中文网/ 问答频道 /正文

这是我的代码:

from tkinter import *
import random

root = Tk()

numbers = [0,1,2,3,4,5]

global AdviseBox
AdviseBox = Text(root, width=110, height=10)
AdviseBox.pack(side=RIGHT, expand=YES, padx=5, pady=5)

AdviseBox.insert(INSERT, "Your random number is:",(numbers[random.randint(0, len(numbers) - 1)]), "\n\nHappy?")

root.mainloop()

Output Currently

但我希望它在文本框中生成:

^{pr2}$

我已经测试了print语句是否可以工作,而不是将文本插入textbox,并且print语句能够产生所需的输出。然而,问题似乎是文本框无法理解我从列表中选择数字的部分。我试过用其他变量,结果是一样的。我不知道该怎么办,我想我什么都试过了!:(


Tags: 代码textfromimporttkinterrandomroot语句
1条回答
网友
1楼 · 发布于 2024-10-01 07:50:57

insert方法接受可变数量的参数。第一个参数是索引,第二个参数是字符串。第三个,如果有的话,是一个标签。第四个是字符串,第五个是标记,第六个是字符串,第七个是标记,依此类推(index,string,tag,string,tag,string,…)

看看这行代码:

AdviseBox.insert(INSERT, "Your random number is:",(numbers[random.randint(0, len(numbers) - 1)]), "\n\nHappy?")

。。。使用多条线,与此相同:

^{pr2}$

你需要做的是把最后三个连接成一个字符串。使用临时变量最简单。试图将所有代码塞进一个语句中没有任何价值。另外,当您使用多行代码时,调试变得更加容易,因为您可以检查所有中间值。在

例如:

number = random.randint(0, len(numbers)-1)
s = "Your random number is: {}\n\nHappy?".format(number)
AdviseBox.insert(INSERT, s)

注意:因为您想从现有的数字列表中选择,而不是random.randint,您可以使用更能反映您意图的random.choice

number = random.choice(numbers)

相关问题 更多 >