# 获取品名列表 self.label14 = ttk.Label(self.container_top, text="時間:") self.label14.grid(row=5, column=0, padx=5, pady=5) self.material_qty14 = ttk.Combobox(self.container_top, values=[], state='readonly') self.material_qty14.grid(row=5, column=1, padx=5, pady=5)在這個下拉輸入框寫入實時的時間
时间: 2024-03-15 09:46:23 浏览: 82
您可以使用Python内置的time模块来获取当前时间并将其显示在下拉框中。以下是一个示例代码片段:
```python
import time
# 获取当前时间并格式化
current_time = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime())
# 将当前时间添加到下拉框中
self.material_qty14['values'] = [current_time]
self.material_qty14.current(0)
```
这将在下拉框中显示当前时间,并将其设置为默认选项。您可以将此代码放在适当的位置,例如在窗口初始化时或在特定事件发生时。
相关问题
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)
这是一个使用Python Tkinter库开发的物料进出库统计应用程序。应用程序的主要窗口被分成了左右两部分,其中左侧面板被进一步分成了左上方面板和左下方面板。应用程序从一个Excel文件中读取数据,并将数据填充到下拉框中。用户可以在输入框中输入内容,下拉框会根据用户输入的内容进行过滤,并展示符合条件的选项。应用程序还包括了一些标签和组件,比如标签“PEGA-料号”和下拉框“material_qty14”。
class InventoryApp: def __init__(self, master): self.master = master master.title("物料进出库统计") self.master.state('zoomed') # 窗口最大化self.label12 = ttk.Label(self.container_top, text="數量:") self.label12.grid(row=1, column=0, padx=5, pady=5) self.material_qty12 = ttk.Combobox(self.container_top, values=[]) self.material_qty12.grid(row=1, column=1, padx=5, pady=5)self.label6 = ttk.Label(self.container_top, text="品名:") self.label6.grid(row=5, column=0, padx=5, pady=5) self.material_qty6 = ttk.Combobox(self.container_top, values=[]) self.material_qty6.grid(row=5, column=1, padx=5, pady=5)修改這個代碼,獲取第一個下拉輸入框中寫入的值,在打開的excel工作表名為數據的表匹配A列相應數據的第4列數據填寫到第2個下拉輸入框中
你可以在代码中添加以下函数来实现这个功能:
```
import openpyxl
class InventoryApp:
def __init__(self, master):
self.master = master
master.title("物料进出库统计")
master.state('zoomed')
self.label12 = ttk.Label(self.container_top, text="數量:")
self.label12.grid(row=1, column=0, padx=5, pady=5)
self.material_qty12 = ttk.Combobox(self.container_top, values=[])
self.material_qty12.grid(row=1, column=1, padx=5, pady=5)
self.label6 = ttk.Label(self.container_top, text="品名:")
self.label6.grid(row=5, column=0, padx=5, pady=5)
self.material_qty6 = ttk.Combobox(self.container_top, values=[])
self.material_qty6.grid(row=5, column=1, padx=5, pady=5)
def read_excel(self, file_path, sheet_name):
wb = openpyxl.load_workbook(file_path)
ws = wb[sheet_name]
data = []
for row in ws.iter_rows(values_only=True):
data.append(row[0])
return data
def get_material_qty(self):
material_qty_value = self.material_qty12.get()
file_path = 'your_file_path.xlsx' # 更改为你的文件路径和名称
sheet_name = '数据' # 更改为你的工作表名称
data = self.read_excel(file_path, sheet_name)
for row in range(1, len(data)):
if data[row] == material_qty_value:
self.material_qty6.set(ws.cell(row=row+1, column=4).value)
break
```
然后在你的代码中调用此函数,如下所示:
```
self.material_qty12.bind("<<ComboboxSelected>>", lambda event: self.get_material_qty())
```
这将在选择第一个下拉框中的值时调用 `get_material_qty()` 函数,该函数将从 Excel 文件中读取数据并将其填充到第二个下拉框中。
阅读全文