我有一个 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()
当我运行上面的脚本时,它显示了这个(这很好):
替代文字 http://img708.imageshack.us/img708/8821/tkinter1.png
当我单击 Commands > Show Skills 时,它变成了这个. (链接因为它很高。)它显示了正确的东西,但是......我可以想象你看到了问题。
两个问题:
-如何在框架中添加滚动条,并使框架保持固定大小?(理想情况下,保持第一张图像的大小,添加 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 等。
但是,我不希望像现在这样在它们之间有额外的界限,我想知道我是如何做到的是否是最好的方法。