所以我试图在树莓派触摸屏上全屏显示树视图。树视图将填充我的脚本从 csv 文件读取的项目。当一行包含特定项目时,将会发出警报(使用 GPIO 引脚)。这一切都有效,现在树视图下方应该有一个按钮可以重置警报。
这是脚本的 tkinter 部分的代码,重置按钮的功能有效,只是不会显示在我的显示器上。当我禁用树视图时,会出现按钮;所以我怀疑我的这个组件的编码应该有错误。
mainScreen=tk.Tk()
mainScreen.title("Meldingen")
mainScreen.overrideredirect(True)
mainScreen.geometry("{0}x{1}+0+0".format(mainScreen.winfo_screenwidth(), mainScreen.winfo_screenheight()))
mainScreen.resizable(width=False, height=False)
s=ttk.Style()
s.theme_use('clam')
s.configure('Treeview', rowheight=40)
header=["time","alarm","adress","message"]
tree=ttk.Treeview(mainScreen,columns=header, show="headings")
tree.pack(padx=20, pady=20,fill="x")
reset_button=tk.Button(mainScreen,text="reset alarm",command=reset_alarm,state= tk.DISABLED)
reset_button.pack(padx=20, pady=10)
您似乎面临一个问题,即启用树视图时,重置_按钮不会出现在屏幕上。
一种可能的解决方案是使用网格几何管理器而不是包。这提供了对小部件放置的更多控制。
这是修改为使用“网格”的代码:
树。 grid(row=0, column=0, pad x=20, pad y=20, Sticky="ew") # 使用 grid 而不是 pack
重置按钮 = tk.按钮(主屏幕,文本=“重置警报”,命令=重置警报,状态=tk。禁用) 复位按钮。 grid(row=1, column=0, pad x=20, pad y=10, Sticky="ew") # 使用 grid 而不是 pack
主屏幕.主循环()
使用网格,您可以指定每个小部件应放置的行和列。 Sticky 参数指定小部件应如何扩展以填充分配给它的空间; “ew”表示小部件应随窗口水平扩展。根据需要调整行数和列数以实现所需的布局。