【发布时间】:2016-01-05 14:46:48
【问题描述】:
我正在尝试将堆列表中的 2 列填充到我的 GUI 上的文本小部件中。我在下面包含了我的代码,它的作用相同。 self.top5 是我的列表,它显示按降序排列的前 5 个元素
self.tableSize = 25
self.hashTable = [[] for i in range(25)]
self.top5 = [(0,0) * 5]
创建堆后,验证hashkey,追加等
self.top5 = (heapq.nlargest(5,heap)
self.text.tag_configure('big',foreground = '#5C0000',font('Verdana',9,'bold'))
self.text.tag_configure('sub',foreground = '#000000',font('Verdana',9,'bold'))
self.text.tag_configure('val',foreground = '#000000',font =('Verdana',9))
self.text.insert(INSERT,"\nEMP STATISTICS:",'big')
self.text.insert(END,"\n")
self.text.insert(INSERT,"EMP NUMBER:",'sub')
self.text.insert(END,"\t")
self.text.insert(INSERT,self.eID,'val')
self.text.insert(END,",")
self.text.insert(INSERT,"EMP NAME:",'sub')
self.text.insert(END,"\t")
self.text.insert(INSERT,self.eName,'val')
self.text.insert(END,",")
for k in self.top5:
self.text.insert(INSERT,k[0],'val')
self.text.insert(END, "\t\t")
self.text.insert(INSERT,k[1],'val')
self.text.insert(END,"\t\t\t")`
当我运行我的程序时,不知何故我的屏幕上什么也没有出现。虽然没有错误。另外,我首先插入到我的 heapq 中,然后获取使用 nlargest 排序的 top5 详细信息。
谁能解释一下为什么我在我的 GUI 上看不到任何数据?当我在某些检查点使用打印语句时,它可以工作,并且我绝对可以在终端上看到正确的输出。我是新手,如果太愚蠢/太明显,请原谅我。
【问题讨论】:
-
您将
self.text放在任何地方吗?使用.pack()或.grid()左右? -
你在哪里打电话给
mainloop()?您是否有自己的无限循环阻止事件被处理? -
天啊! @AnandSKumar,我没有打包!太感谢了!有些错过了那段代码......我现在可以在屏幕上看到文本小部件......但是当我扩展屏幕时它不会自动调整大小......我尝试了 expand=1,fill='两者都'..但这也无济于事。它仍然是一样的......你能指导我吗?
-
@BryanOakley:是的,我是。我没有使用网格/包。太傻了! :-(..我如何自动调整文本小部件的大小。包没有帮助..
-
@Dee:这是一个完全不同的问题,无法在评论区回答。 pack(和 grid)在自动调整大小方面没有任何限制,但这完全取决于您如何使用它。
标签: python tkinter python-3.4 ttk