class InventoryApp: def init(self, master): self.master = master master.title("物料进出库统计") self.master.state('zoomed') # 窗口最大化 # 创建左侧面板 self.container = tk.Frame(master) self.container.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # 创建左上方面板 self.container_top = tk.Frame(self.container) self.container_top.pack(side=tk.TOP, fill=tk.BOTH, expand=True) # 创建左下方面板 self.container_bottom = tk.Frame(self.container) self.container_bottom.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True)# 打开Excel文件 self.wb = openpyxl.load_workbook(r"C:\Users\bing3_chen\Desktop\1.xlsx") self.record_sheet = self.wb["記錄"] self.data_sheet = self.wb["數據"]# 从工作表中获取数据并写入下拉框中 data_list = [] for row in range(2, self.data_sheet.max_row + 1): cell_value = self.data_sheet.cell(row=row, column=1).value if cell_value: data_list.append(cell_value) def on_material_name_keyrelease(event): # 获取用户输入的内容 user_input = self.material_name11.get() if not user_input: # 如果用户没有输入任何内容,则展示所有选项 self.material_name11.configure(values=data_list) else: # 根据用户输入的内容过滤下拉框的选项 filtered_options = [option for option in data_list if user_input in option] if filtered_options: # 如果有符合条件的选项,则更新下拉框的选项并展开下拉框 self.material_name11.configure(values=filtered_options) self.material_name11.event_generate('<Down>') else: # 如果没有符合条件的选项,则关闭下拉框 self.material_name11.event_generate('<Escape>') # 创建标签 self.label10 = ttk.Label(self.container_top, text="PEGA-料号:") self.label10.grid(row=0, column=0, padx=5, pady=5)# 获取品名列表 self.label14 = ttk.Label(self.container_bottom, text="品名:") self.label14.grid(row=5, column=0, padx=5, pady=5) self.material_qty14 = ttk.Combobox(self.container_bottom, values=[]) self.material_qty14.grid(row=5, column=1, padx=5, pady=5)
时间: 2024-04-25 08:27:40 浏览: 93
这是一个使用Python Tkinter库开发的物料进出库统计应用程序。应用程序的主要窗口被分成了左右两部分,其中左侧面板被进一步分成了左上方面板和左下方面板。应用程序从一个Excel文件中读取数据,并将数据填充到下拉框中。用户可以在输入框中输入内容,下拉框会根据用户输入的内容进行过滤,并展示符合条件的选项。应用程序还包括了一些标签和组件,比如标签“PEGA-料号”和下拉框“material_qty14”。
相关问题
class InventoryApp: def init(self, master): self.master = master master.title("物料进出库统计") self.master.state('zoomed') # 窗口最大化 # 创建左侧面板 self.container = tk.Frame(master) self.container.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # 创建左上方面板 self.container_top = tk.Frame(self.container) self.container_top.pack(side=tk.TOP, fill=tk.BOTH, expand=True) # 创建左下方面板 self.container_bottom = tk.Frame(self.container) self.container_bottom.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True) # 创建右侧面板 self.container1 = tk.Frame(master) self.container1.pack(side=tk.RIGHT, fill=tk.Y, expand=True, anchor='center')在右側創建一個縱向的工具欄
您可以使用 Tkinter 中的 `tk.Frame` 和 `tk.Button` 组件来创建一个垂直的工具栏。以下是一个简单的示例代码:
```python
# 创建一个垂直的工具栏
toolbar = tk.Frame(master, width=50)
toolbar.pack(side=tk.RIGHT, fill=tk.Y)
# 创建按钮
button1 = tk.Button(toolbar, text="Button 1")
button1.pack(side=tk.TOP, pady=5)
button2 = tk.Button(toolbar, text="Button 2")
button2.pack(side=tk.TOP, pady=5)
button3 = tk.Button(toolbar, text="Button 3")
button3.pack(side=tk.TOP, pady=5)
```
您可以根据需要修改按钮的文本、大小、颜色等属性。同时,您也可以使用 `pady` 参数来设置按钮之间的间距。
class InventoryApp: def __init__(self, master): self.master = master master.title("物料进出库统计") self.master.state('zoomed') # 窗口最大化 # 创建左侧面板 self.container = tk.Frame(master, width=30 ) self.container.pack(side=tk.LEFT, fill=tk.Y) # 创建左侧面板 self.container1 = tk.Frame(master) self.container1.pack(side=tk.RIGHT, fill=tk.Y, expand=True, anchor='center')在這個代碼中將左側面板分爲傷心連個面板
在这段代码中,左侧面板被分成了两个面板。一个是宽度为30的self.container,另一个是没有设置宽度的self.container1。其中,self.container被定位在左侧,self.container1被定位在右侧,并且设置了expand=True和anchor='center',表示如果窗口大小改变,self.container1会根据窗口大小进行扩展,并且在窗口中央对齐。
阅读全文