【发布时间】:2019-09-18 05:37:03
【问题描述】:
我的任务是创建一个程序,您可以在其中运行自己的贩毒集团(非常 PC),并且在窗口的一侧有一组标签和一个按钮,您可以在其中购买物品,每个物品都是类和标签和按钮是为类中的所述项目制作的。 Tkinter 偶尔会以正确的顺序放置这些标签,但随机 Tkinter 不会为某些项目放置任何东西。
我尝试改变标签放置的方式,但我没有得到任何地方。似乎没有任何效果。
这是为每个项目生成标签和按钮的类。
class drug:
def __init__(self, name, potency, duration, safety, buy):
self.name = name
self.origin = ('Brighton', 'London', 'Netherlands', 'China', 'USA', 'Mexico')[ran.randint(0, 5)]
self.potency = potency
self.duration = duration
self.safety = safety
self.buy = buy
self.seller = None
self.paneltitle = Label(mainFrame, text=self.name, font=('Segoe UI', 20, 'bold'))
self.panellocation = Label(mainFrame, text=self.origin, font=('Segoe UI', 12, 'bold italic'))
self.panelprice = Label(mainFrame, text='$' + str(self.buy) + ' (/g)', font=('Segoe UI', 12, 'bold italic'))
self.buybtn = ttk.Button(mainFrame, text='Purchase')
def place_gen_panel(self, x, y):
self.paneltitle.place(x=x, y=y)
self.panellocation.place(x=x, y=y+30)
self.panelprice.place(x=x, y=y+60)
self.buybtn.place(x=x, y=y+90)
下面是运行 place_gen_panel() 的代码,其参数是从非常简单的 for i in range 循环中计算出来的。
for i in range(0, 3):
obj = drug()
master_list.append(obj)
obj.place_gen_panel(10, i*130)
我没有足够高的声誉来发布图片,所以我包含了链接
这是它决定要工作时的程序
https://i.ibb.co/gmCw21t/Screenshot-2019-09-18-at-06-29-19.png
这是大多数情况下发生的情况,并不总是中间的项目,有时只显示一个项目
https://i.ibb.co/HF22DD8/Screenshot-2019-09-18-at-06-29-39.png
非常感谢大家的宝贵时间,非常感谢任何帮助。
【问题讨论】:
-
一开始你可以使用
print()来查看变量中的值——也许它们有错误的值。也许你有空字符串,所以它放了空的地方。 -
顺便说一句:你可以使用
self.origin = radom.choice(('Brighton', 'London', 'Netherlands', 'China', 'USA', 'Mexico'))