创建底部的工具栏 self.bottom_frame = ttk.Frame(master, height=20, bg='lightcyan') self.bottom_frame.pack(side='bottom', fill='x') # 创建左侧面板 self.panel_left = tk.Frame(master, width=130, bg='lightcyan') self.panel_left.pack(side=tk.LEFT, fill=tk.Y) # 创建右侧面板 self.panel_right = tk.Frame(master, width=20, bg='lightcyan') self.panel_right.pack(side=tk.RIGHT, fill=tk.Y) # 创建工具栏 self.toolbar = tk.Frame(master,width=20, bg='white') self.toolbar.pack(side=tk.BOTTOM, fill=tk.X)_tkinter.TclError: unknown option "-bg"
时间: 2024-03-01 07:55:58 浏览: 118
这个错误发生在你想要为你的工具栏设置背景色时,使用了一个未知的选项“-bg”。正确的选项应该是“background”或“bg”。请更正这个选项并重新运行你的代码。以下是正确的代码示例:
```
# 创建工具栏
self.toolbar = tk.Frame(master, width=20, bg='white')
self.toolbar.pack(side=tk.BOTTOM, fill=tk.X)
```
这样,你的工具栏应该能够正确地显示背景色了。
相关问题
class InventoryApp: def init(self, master): self.master = master master.title("物料进出库统计") self.master.state('zoomed') # 窗口最大化 # 创建右侧的工具栏 toolbar_frame = ttk.Frame(master, width=20) toolbar_frame.pack(side='right', fill='y') # 创建底部的工具栏 bottom_frame = ttk.Frame(master, height=20) bottom_frame.pack(side='bottom', fill='x') # 创建左侧面板 self.container = tk.Frame(master, width=100, bg='lightcyan') self.container.pack(side=tk.LEFT, fill=tk.BOTH) # 创建工具栏 toolbar = tk.Frame(master, height=0.2) self.selected_label = tk.Label(toolbar, text="", fg="red", font=("Arial", 12)) self.selected_label.pack(side=tk.LEFT, padx=0.02, pady=0.02) # 创建左上方面板 self.container_top = tk.Frame(self.container, width=100, bg='lightcyan') self.container_top.pack(side=tk.TOP, fill=tk.BOTH, expand=True) # 创建左下方面板 self.container_bottom = tk.Frame(self.container, width=100, bg='lightcyan') self.container_bottom.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True) # 创建右侧面板 self.container1 = tk.Frame(master) self.container1.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # 打开Excel文件 self.wb = openpyxl.load_workbook(庫存) self.record_sheet = self.wb["出入庫明細"] self.data_sheet = self.wb["庫存明細"]# 添加显示excel内容的按钮 self.show_button = tk.Button(self.container_bottom, text="显示Excel内容", command=self.show_excel) self.show_button.grid(row=12, column=0, columnspan=2, padx=5, pady=5) # 创建底部工具栏 bottom_toolbar = tk.Frame(master, bg='white') bottom_toolbar.pack(side=tk.BOTTOM, fill=tk.X) # 创建标签 label = tk.Label(self.container1, text="出入庫明細") label.pack(side=tk.TOP) # 创建文本框1 text_frame = tk.Frame(self.container1) text_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.result_text = tk.Text(text_frame) self.result_text.pack(side=tk.TOP, fill=tk.BOTH, expand=True) # 创建标签2 label2 = tk.Label(self.container1, text="庫存明細") label2.pack(side=tk.TOP) # 创建文本框2 text_frame2 = tk.Frame(self.container1) text_frame2.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True) self.result_text2 = tk.Text(text_frame2) self.result_text2.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
这段代码是一个 Python 的 GUI 应用程序,用于管理库存进出库的统计。它使用了 tkinter 和 openpyxl 库,创建了一个窗口,包含了左侧和右侧两个面板,以及底部和右侧的工具栏。左侧面板包括左上和左下两个子面板,右侧面板包括一个文本框和一个标签。程序通过打开 Excel 文件,加载出入库明细和库存明细,并且可以通过点击显示 Excel 内容的按钮,将内容显示在左侧面板的文本框中。
# 查询窗口 class QueryWindow: def __init__(self, master): self.master = master self.master.title("查詢窗口") self.master.state('zoomed') # 窗口最大化 # 创建一个新的样式 style = ttk.Style() style.configure("Custom.TFrame", background="lightcyan") # 创建底部的工具栏 self.bottom_frame = ttk.Frame(master, height=20, style="Custom.TFrame") self.bottom_frame.pack(side='bottom', fill='x') # 创建左侧面板 self.panel_left = tk.Frame(master, width=130, bg='lightcyan') self.panel_left.pack(side=tk.LEFT, fill=tk.Y) # 创建右侧面板 self.panel_right = tk.Frame(master, width=20, bg='lightcyan') self.panel_right.pack(side=tk.RIGHT, fill=tk.Y) # 创建工具栏 self.toolbar = tk.Frame(master,width=20, bg='white') self.toolbar.pack(side=tk.BOTTOM, fill=tk.X) # 创建 Frame 来包含标签和下拉框 input_frame = tk.Frame(self.panel_left, padx=0, pady=5) input_frame.pack(side=tk.TOP, fill=tk.X) # 创建标签和下拉框日期 ri = datetime.datetime.now().strftime('%Y/%m/%d') self.date_label = tk.Label(input_frame, text="點檢日期:") self.date_label.grid(row=0, column=0, padx=5, pady=5, sticky=tk.W) self.date_entry = tk.ttk.Combobox(input_frame, values=[ri]) self.date_entry.grid(row=0, column=1, padx=5, pady=5, sticky=tk.W) self.date_entry.current(0) # 创建标签和下拉框线别 self.line_label1 = tk.Label(input_frame, text="线别:") self.line_label1.grid(row=1, column=0, padx=5, pady=5, sticky=tk.W) self.line_entry1 = tk.ttk.Combobox(input_frame, values=["PA綫", "PB綫", "PC綫", "PD綫", "NF綫", "NE綫", "ND綫", "NC綫", "NB綫", "NA綫"]) self.line_entry1.grid(row=1, column=1, padx=5, pady=5, sticky=tk.W) self.line_entry1.current(0)ValueError: Value must be either numerical or a string containing a wildcard
这个错误通常发生在你尝试将一个无效的值赋给 `current` 属性。请检查你在 `self.line_entry1` 中设置的 `values` 值是否正确。如果 `values` 中包含非数字和通配符的字符串,则 `current` 属性必须设置为 `values` 中的一个索引。如果 `values` 中包含数字和通配符的字符串,则可以将 `current` 属性设置为一个字符串,例如 `current("*")`,表示选择所有值。请更正你的 `values` 和 `current` 属性,以保证它们的值是有效的。例如:
```
# 创建标签和下拉框线别
self.line_label1 = tk.Label(input_frame, text="线别:")
self.line_label1.grid(row=1, column=0, padx=5, pady=5, sticky=tk.W)
self.line_entry1 = tk.ttk.Combobox(input_frame,
values=["PA綫", "PB綫", "PC綫", "PD綫", "NF綫", "NE綫", "ND綫", "NC綫",
"NB綫", "NA綫"])
self.line_entry1.grid(row=1, column=1, padx=5, pady=5, sticky=tk.W)
self.line_entry1.current(0) # 设置默认选项
```
这里,我们将 `values` 设置为一个包含字符串的列表,并将 `current` 属性设置为 `0`,表示默认选择列表中的第一项。这样,你的代码应该能够正常运行了。
阅读全文