我制作了一个显示窗口的程序,并将用户输入打印到 aLabel
中,并将将来的任何输入添加到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()