目标:从字符串列表(设置为变量)中随机取一个,并在新的Tkinter窗口中显示(假设程序中已有一个)。另外,如何实现一个在程序中运行的类? (这与我假设的目标不同。)
技术信息: 使用Python 2.6.8版(由于技术原因)& Pycharm IDE(社区版)
可能的解决方案:使用randinit()命令获取随机整数,并根据整数是什么,为变量分配一个字符串,然后通过tkinter标签的textvariable命令显示该变量
类的概念代码:
from Tkinter import *
import random
class popUp():
def __init__(self):
top = self.top = Toplevel()
self.nth = 0
Label(top,text="Suggestion:").pack(side=TOP)
self.message()
Label(top,textvariable=self.inp)
def message(self):
self.nth = random.randint(490, 500)
if self.nth == 490:
self.inp = "Have a turkey!"
elif self.nth == 491:
self.inp = "Have a turkey!"
elif self.nth == 492:
self.inp = "Have a turkey!"
elif self.nth == 493:
self.inp = "Have a turkey!"
elif self.nth == 494:
self.inp = "Have a turkey!"
elif self.nth == 495:
self.inp = "Have a turkey!"
elif self.nth == 496:
self.inp = "Have a turkey!"
elif self.nth == 497:
self.inp = "Have a turkey!"
elif self.nth == 498:
self.inp = "Have a turkey!"
elif self.nth == 499:
self.inp = "Have a turkey!"
else:
self.inp = "Have a turkey!"
def main():
root.mainloop()
if __name__ == '__main__':
main()
我需要的是什么:要么修改概念代码,要么使用不同的命令,要么使用列出的目标使用不同的代码。
如果我遗漏了任何基本信息,请发表评论,请尽快回复,但请快速回复。
请注意我的编程回程很少,在Python和一般情况下。可能必须解释一些概念。
答案 0 :(得分:0)
随机选择字符串的最简单方法是将它们全部放在列表中,然后使用random.choice
。要更改标签中的文本,Tkinter会为您提供一个Stringvar类,以便在其值更改时使标签保持最新。看起来您的self.inp
可能已经是一个(在创建标签之前似乎缺少self.inp = Stringvar()
),但您需要使用其set方法而不是重新分配它。将它们放在一起看起来像这样:
def message(self):
self.inp.set(random.choice(messages))
将消息设置在课堂外的某处。