# 查询窗口 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
时间: 2024-01-13 08:04:05 浏览: 100
这个错误通常发生在你尝试将一个无效的值赋给 `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`,表示默认选择列表中的第一项。这样,你的代码应该能够正常运行了。
阅读全文