如何在 tkinter 中获得全屏树视图,其下方有一个按钮

问题描述 投票:0回答:1

所以我试图在树莓派触摸屏上全屏显示树视图。树视图将填充我的脚本从 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)
python tkinter raspberry-pi tkinter-layout tkinter-button
1个回答
0
投票

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

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

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

树。 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”表示小部件应随窗口水平扩展。根据需要调整行数和列数以实现所需的布局。

© www.soinside.com 2019 - 2024. All rights reserved.