首页 > 解决方案 > 如何使用 Tkinter 创建网格?

问题描述

我正在尝试使用 Tkinter 创建一个时间表应用程序,并且需要创建一个网格模板,如下所示: 时间表模板

我从 StackOverflow 中查找了一些示例(例如Tkinter | Custom widget: Infinite (horizo​​ntal) scrolling calendar),但我很难掌握 OOP 的使用。

有没有更简单的方法在 tkinter 中实现这个表?或者有什么方法可以使用 OOP 的“更简单”(?)方法来制定时间表?

谢谢

更新

我浏览了这个例子:它更容易理解,但是可以从代码中解释星号线吗?

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()

标签: pythontkintergrid

解决方案


推荐阅读