我有一个tkinter程序:
import urllib.request
from tkinter import *
root = Tk()
root.iconbitmap(default='icon.ico')
root.wm_title('Got Skills\' Skill Tracker')
frame = Frame(width="500",height="500")
frame.pack()
def show():
name = "zezima"
page = urllib.request.urlopen('http://hiscore.runescape.com/index_lite.ws?player=' + name)
page = page.readlines()
skills = []
for line in page:
skills.append([line.decode("utf-8").replace("\n", "").split(",")])
skills = skills[0:25]
for item in skills:
toPrint = item[0][0],"-",item[0][1],"-",item[0][1],"\n"
w = Message(frame, text=toPrint)
w.pack()
menu = Menu(root)
root.config(menu=menu)
filemenu = Menu(menu)
menu.add_cascade(label="Commands", menu=filemenu)
filemenu.add_command(label="Show Skills", command=show)
root.mainloop()
当我运行上述脚本时,它显示了这个(很好):
alt text http://img708.imageshack.us/img708/8821/tkinter1.png
当我点击命令>显示技能时,它变成了这样。虽然它显示了正确的内容,但是...我可以想象你看到了问题。两个问题: -如何向框架添加滚动条,并保持框架大小固定? (理想情况下,保持第一幅图像的大小,添加show()的输出,将滚动条添加到程序的第一幅图像。) -使用以下代码:
for item in skills:
toPrint = item[0][0],"-",item[0][1],"-",item[0][2],"\n"
w = Message(frame, text=toPrint)
w.pack()
这是输出我所需内容的最佳方式吗?列表 (skills
) 看起来像 [[1,2,3],[4,5,6]..]
,我想在一行上显示1-2-3,另一行上显示4-5-6等。
但是,我不希望它们之间有额外的空行,我想知道我现在的方法是否是最佳实践。
\n
来防止它们都显示在同一行。:P。无论如何,非常感谢。它运行得很好。 :) - Andrew_tkinter.TclError: invalid command name "tixScrolledWindow"
的错误消息。 - TheTechRobo the Nerd