【发布时间】:2013-03-28 19:51:30
【问题描述】:
我制作了一个程序,它显示一个窗口,并将用户输入打印到Label,并将将来的任何输入添加到Label 的新行。
我的问题是一旦达到x 的行数,文本就会超出Label 的范围,你就看不到它了。
我想做的是将新输入放置在所有输入的底部,导致顶行向上推并超出标签顶部。
这是目前为止的全部代码:
from tkinter import *
string = None
labelContents = ""
class App(Frame):
def __init__(self, master):
Frame.__init__(self, master)
self.master = master
self.initUI()
def initUI(self):
global string
self.master.title("Tkinter test")
string = StringVar()
frame = Frame(self, relief=RIDGE, borderwidth=3, width=300, height=50)
frame.pack(fill=BOTH, expand=1)
label = Label(self, justify=LEFT, relief=RIDGE, borderwidth=3, textvariable=string, width=300, height=5, anchor=NW)
label.pack(fill=BOTH, expand=1)
self.pack(fill=BOTH, expand=1)
self.textEntry = Entry(self)
self.textEntry.bind('<Return>', self.updateLabel)
self.textEntry.pack(side=TOP, fill=X, padx=5, pady=5)
closeButton = Button(self, text="Close", height=1, width=10, command=self.close)
closeButton.pack(side=RIGHT, padx=5, pady=5)
def close(self):
self.master.destroy()
def updateLabel(self, event):
global string
global labelContents
labelContents += self.textEntry.get()
labelContents += "\n"
string.set(labelContents)
self.textEntry.delete(0, END)
def main():
root = Tk()
root.geometry("400x500+440+262")
root.resizable(0, 0)
app = App(root)
root.mainloop()
if __name__ == "__main__":
main()
【问题讨论】: