0
창을 표시하고 사용자 입력을 Label
에 인쇄하는 프로그램을 만들었으며 이후에 입력 할 내용을 새로운 행의 Label
에 추가합니다.Tkinter 레이블에 업데이트 된 텍스트 표시
내 문제는 일단 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()