데이터베이스의 내용을 Tkinter 위젯에 출력하려고합니다. 데이터베이스에는 가로 및 세로 스크롤 막대를 모두 활성화해야하는 곳에 충분한 행과 열이 있지만 가로 및 세로 스크롤을 동시에 수행하는 데 어려움을 겪고 있습니다. 내가 사용하는 Tkinter를 위젯에 대한 불가지론 모르지만, 여기에 내 현재 구현 :Tkinter 위젯의 수직 및 수평 스크롤 막대
self.canvas.pack(side=TOP, fill=BOTH, expand=TRUE) # scrolling works in x but not y
self.canvas.pack(side=LEFT, fill=BOTH, expand=TRUE) # scrolling works in y but not x
: 나는 캔버스를 포장하는 방법, 난 단지에 따라 한 방향으로 작동하는 스크롤을 얻을 수있는이 구현에서
# Create root
self.root = Tk()
self.root.geometry('1000x500+0+0')
# Create canvas
self.canvas = Canvas(self.root)
self.canvas.pack(side=TOP, fill=BOTH, expand=TRUE)
# Create scrollbars
self.xscrollbar = Scrollbar(self.root, orient=HORIZONTAL, command=self.canvas.xview)
self.xscrollbar.pack(side=BOTTOM, fill=X)
self.yscrollbar = Scrollbar(self.root, orient=VERTICAL, command=self.canvas.yview)
self.yscrollbar.pack(side=RIGHT, fill=Y)
# Attach canvas to scrollbars
self.canvas.configure(xscrollcommand=self.xscrollbar.set)
self.canvas.configure(yscrollcommand=self.yscrollbar.set)
# Create frame inside canvas
self.frame = Frame(self.canvas)
self.canvas.create_window((0,0), window=self.frame, anchor=NW)
self.frame.bind('<Configure>', self.set_scrollregion)
# Write db contents to canvas
self.print_dbcontents()
# Invoke main loop
self.root.mainloop()
def set_scrollregion(self, event):
self.canvas.configure(scrollregion=self.canvas.bbox('all'))
동시에 작동하려면 가로 및 세로 스크롤을 사용하거나 대체 솔루션을 찾아야합니다.
[스크롤링 예제] (http://www.tkdocs.com/tutorial/canvas.html#scrolling)는 예상대로 작동합니다 (가져 오기는 Python 2.x에서 수정해야합니다). – jfs