为什么在我使用 state='readonly' 时输入小部件不显示文本

Why does the entry widget not display text when I use state='readonly'

我正在尝试创建一个 table 以使用条目小部件显示文本。我编写了有效的代码,但是当我尝试添加 state=readonly 时,它根本不显示文本。

所以当我 运行 这段代码时,它工作正常但输入小部件是 editable:

# Python program to create a table

from tkinter import *


class Table:

    def __init__(self, root):

        # code for creating table
        for i in range(total_rows):
            for j in range(total_columns):
                self.e = Entry(root, width=20, fg='blue',
                               font=('Arial', 16, 'bold'), state='readonly')

                self.e.grid(row=i, column=j)
                self.e.insert(END, lst[i][j])

            # take the data


lst = [(1, 'Raj', 'Mumbai', 19),
       (2, 'Aaryan', 'Pune', 18),
       (3, 'Vaishnavi', 'Mumbai', 20),
       (4, 'Rachna', 'Mumbai', 21),
       (5, 'Shubham', 'Delhi', 21)]

# find total number of rows and
# columns in list
total_rows = len(lst)
total_columns = len(lst[0])

# find total number of rows and
# columns in list
root = Tk()
t = Table(root)
root.mainloop()

但是,每当我在 self.e 的括号内添加 state='readonly' 时,table 就不再显示文本了。有谁知道为什么会这样?

顺便说一句,我正在使用 python 3.6。

当状态为readonly时,无法编辑小部件。这意味着对 insert 的任何调用都会失败。这就是它的工作原理。

如果您希望小部件为只读,请在插入文本后设置状态