ウィンドウを表示し、ユーザー入力を に出力し、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()