因此,我试图在Raspberry Pi触摸屏上显示Treeview全屏。我的脚本从CSV文件中读取的项目填充了TreeView。当线包含特定项目时,会有一个警报(使用GPIO引脚)。这一切都起作用,现在应该在树景下面有一个按钮以重置警报。

这是脚本的TKINTER部分的代码,重置按钮的功能可行,它不会显示在我的显示器上。当我禁用TreeView时,按钮出现;因此,我怀疑我对此组件的编码应该存在错误。

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)
分析解答

似乎您正面临一个问题,即启用树视图时,重置_button不会出现在屏幕上。

一种可能的解决方案是使用网格几何管理器而不是包装。这提供了对小部件位置的更多控制。

这是您修改的代码以使用“网格”:

tree. grid(row=0, column=0, pad x=20, pad y=20, sticky="ew")  # Use grid instead of pack

reset _button = tk. Button (main Screen, text="reset alarm", command=reset_ alarm, state=tk. DISABLED)
reset _button. grid(row=1, column=0, pad x=20, pad y=10, sticky="ew")  # Use grid instead of pack

main Screen .main loop()

使用网格,您可以指定每个小部件应放置的行和列。粘性参数指定小部件应如何扩展以填充分配给其的空间; "ew"表示小部件应与窗口水平扩展。根据需要调整行和列号,以实现所需的布局。