어떤 문제가 있습니까? 간단한 해결책은 grid
을 사용하여 위젯을 배치하는 것입니다. 각 셀에 원하는 유형의 위젯을 넣을 수 있습니다. 그리고 예, 라벨에는 테두리가있을 수 있습니다. 그래도 그리드 선을 그리는 간단한 방법은 각 셀 주위에 패딩을 사용하여 프레임의 색상이 간격을 통해 표시되도록하는 것입니다.
프레임에서이 작업을 수행하십시오. 테이블을 스크롤 할 수 있어야한다면 프레임을 캔버스 안에 넣고 스크롤 막대를 추가하십시오. 캔버스를 사용하여 스크롤 가능한 프레임을 만드는 방법에 대한 웹의 예가 있습니다.
레이블을 사용하고 스크롤하지 않는 정말 빠른 예가 있습니다. 나는 당신이 독자를위한 운동으로 필요한 것의 정확한 구현을 떠날 것이다.
import Tkinter as tk
class ExampleApp(tk.Tk):
def __init__(self):
tk.Tk.__init__(self)
t = SimpleTable(self, 10,2)
t.pack(side="top", fill="x")
t.set(0,0,"Hello, world")
class SimpleTable(tk.Frame):
def __init__(self, parent, rows=10, columns=2):
# use black background so it "peeks through" to
# form grid lines
tk.Frame.__init__(self, parent, background="black")
self._widgets = []
for row in range(rows):
current_row = []
for column in range(columns):
label = tk.Label(self, text="%s/%s" % (row, column),
borderwidth=0, width=10)
label.grid(row=row, column=column, sticky="nsew", padx=1, pady=1)
current_row.append(label)
self._widgets.append(current_row)
for column in range(columns):
self.grid_columnconfigure(column, weight=1)
def set(self, row, column, value):
widget = self._widgets[row][column]
widget.configure(text=value)
if __name__ == "__main__":
app = ExampleApp()
app.mainloop()
에서 HTTP [TkTable] (무엇이 문제 ://tkinter.unpythonic.net/wiki/TkTable)? – Simon
사용중인 PC에서 다운로드 할 수 없습니다 ... 차단되었습니다! – user2063
심지어 http://tkinter.unpy.net/wiki/TkTableWrapper? – Simon