【发布时间】:2018-11-14 01:07:52
【问题描述】:
几天以来,我一直在尝试学习 python 和 tkinter。 我想在框架中创建动态复选框(来自文件的值)。
这是我的代码:
import tkinter as tk
lst="lst.txt"
class DisplayApp:
def __init__(self):
self.root = tk.Tk()
self.root.title("My Menu")
self.build_gui()
def build_gui(self):
frame_1 = tk.LabelFrame(self.root, text="Frame 1")
frame_1.grid(row=2, columnspan=3, sticky='WE',
padx=5, pady=5, ipadx=5, ipady=5)
linestring = open(lst, 'r').read()
for checkBoxName in linestring:
c = tk.Checkbutton(frame_1, text=checkBoxName,)
c.pack(side=tk.LEFT)
def clicked(self):
pass
def main(self):
self.root.mainloop()
if __name__ == "__main__":
app = DisplayApp()
app.main()
这是文件 lst.txt:
laptopname_1
laptopname_2
laptopname_3
laptopname_n
...
这是错误:
[root@hdid_master ~]# ./test_menu_2.py
File "./test_menu_2.py", line 35
for checkBoxName in linestring:
^
TabError: inconsistent use of tabs and spaces in indentation
非常感谢您的帮助。 最好的问候。
【问题讨论】:
-
您的错误消息告诉您重要信息,阅读和理解它对于帮助您排除代码故障至关重要。在这种特殊情况下,python 解释器告诉您不要将制表符和空格混合在一起作为缩进。使用缩进中的所有制表符或所有空格,而不是两者的混合。
-
您的错误表明缩进中制表符和空格的使用不一致。这意味着您将制表符与空格混合在一起。即使纠正了制表符和缩进,我认为您还需要修复检查按钮的创建。
标签: python for-loop checkbox tkinter