query_entry = tk.Entry(self.container1) query_entry.pack(side=tk.LEFT, padx=5, pady=5) query_button = tk.Button(self.container1, text='查询', command=lambda: self.query_data(query_entry.get(), table2)) query_button.pack(side=tk.LEFT, padx=5, pady=5) def query_data(self, query_str, table): # 清空表格内容 table.delete(*table.get_children()) # 获取查询条件 query_col = 8 # 遍历表格数据,找到符合条件的数据 for row in self.data_sheet.iter_rows(min_row=2, values_only=True): if str(row[query_col - 1]).startswith(query_str): row_values = [str(cell) if cell is not None else "" for cell in row] table.insert("", tk.END, values=row_values)在這個代碼條件一個用戶按回車也能觸發查詢按鈕
时间: 2024-04-01 09:35:46 浏览: 47
您可以将以下代码添加到query_entry Entry小部件的绑定中,以便在用户按下回车键时触发查询按钮:
query_entry.bind('<Return>', lambda event: query_button.invoke())
这将绑定“Return”键的事件处理程序,以调用query_button的invoke()方法,从而触发查询按钮的单击事件。
相关问题
self.query_entry = tk.Entry(self.container1) self.query_entry.pack(side=tk.LEFT, padx=5, pady=5) self.query_button = tk.Button(self.container1, text='查询', command=lambda: self.query_data(self.query_entry.get(), table2)) self.query_button.pack(side=tk.LEFT, padx=5, pady=5)這個按鈕和文本框是在那個位置的
这段代码是用 Python 的 tkinter 模块创建了一个包含一个文本框和一个查询按钮的容器。根据代码中的 pack(side=tk.LEFT, padx=5, pady=5),可以看出它们是在容器的左侧,并且在水平和垂直方向上都有 5 个像素的 padding。具体位置会取决于容器本身的位置和其他组件的布局。
def show_excel(self): # 清空第一个表格内容 self.result_text.delete(1.0, tk.END) # 清空第二个表格内容 if hasattr(self, 'table_frame2'): self.table_frame2.destroy() self.table_frame2 = tk.Frame(self.result_text2) self.table_frame2.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) table_scroll_y2 = ttk.Scrollbar(self.table_frame2, orient=tk.VERTICAL) table_scroll_y2.pack(side=tk.RIGHT, fill=tk.Y) table_scroll_x2 = ttk.Scrollbar(self.table_frame2, orient=tk.HORIZONTAL) table_scroll_x2.pack(side=tk.BOTTOM, fill=tk.X) # 添加查询框和按钮 query_frame = tk.Frame(self.result_text2) query_frame.pack(side=tk.TOP, fill=tk.X) query_entry = tk.Entry(query_frame) query_entry.pack(side=tk.LEFT, padx=5, pady=5) query_button = tk.Button(query_frame, text='查询', command=lambda: self.query_data(query_entry.get(), table2)) query_button.pack(side=tk.LEFT, padx=5, pady=5) # 清空第二个表格内容 if hasattr(self, 'table_frame'): self.table_frame.destroy() self.table_frame = tk.Frame(self.result_text) self.table_frame.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) table_scroll_y = ttk.Scrollbar(self.table_frame, orient=tk.VERTICAL) table_scroll_y.pack(side=tk.RIGHT, fill=tk.Y) table_scroll_x = ttk.Scrollbar(self.table_frame, orient=tk.HORIZONTAL) table_scroll_x.pack(side=tk.BOTTOM, fill=tk.X
根据您的最新回复,我猜测您的意思是:希望用户在查询框中按下回车键时,可以触发查询按钮的点击事件,从而实现查询操作。如果是这样的话,您可以通过下面的方式实现:
1.给查询框绑定回车键的事件处理函数:
```python
query_entry.bind("<Return>", self.query_by_enter)
```
2.在类中添加一个新的方法 self.query_by_enter,作为回车键的事件处理函数,该函数会调用查询按钮的回调函数:
```python
def query_by_enter(self, event):
self.query_data(query_entry.get(), table2)
```
3.将查询按钮的回调函数改为 self.query_by_enter:
```python
query_button = tk.Button(query_frame, text='查询', command=self.query_by_enter)
```
这样,当用户在查询框中按下回车键时,就会触发查询按钮的点击事件,从而实现查询操作。
阅读全文