def query(self): # 检查日期是否填写 if not self.date_entry.get(): messagebox.showerror("Error", "未填寫日期.") return # 清空查询结果 for widget in self.result_text.winfo_children(): widget.destroy() # 获取所有查询条件r date = self.date_entry.get() name = self.line_entry1.get() #age = self.age_entry.get() # 查询数据 ws = openpyxl.load_workbook('D:\點檢系統存放資料夾\點檢明細\匯總.xlsx').active rows = ws.iter_rows(min_row=1, values_only=True) records = [] header = next(rows) for row in rows: if (not date or row[2] == date) and (not name or row[5] == name): records.append(row) # 显示查询结果 table = ttk.Treeview(self.result_text, columns=header, show='headings') table.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # 设置表格列标题 for col in header: table.heading(col, text=col) table.column(col, width=120) # 调整间隔距离 for row in records: table.insert('', tk.END, values=row) # 创建一个垂直滚动条并将其与表格关联 scrollbar = ttk.Scrollbar(self.result_text, orient=tk.VERTICAL, command=table.yview) table.configure(yscrollcommand=scrollbar.set) scrollbar.pack(side=tk.RIGHT, fill=tk.Y) # 将表格和滚动条添加到一个框架中 table_frame = tk.Frame(self.result_text) table.pack(in_=self.result_text, side=tk.LEFT, fill=tk.BOTH, expand=True) scrollbar.pack(in_=self.result_text, side=tk.RIGHT, fill=tk.Y)將這個函數中顯示數據的文本框的高度設置高一點
时间: 2023-11-13 10:02:52 浏览: 88
你可以尝试在创建表格(table)的时候,将其放在一个 Frame 控件中,并将该 Frame 控件放入一个 Scrollbar 控件中,以实现在文本框高度不变的情况下,增加可显示数据的区域。修改代码如下所示:
```
# 显示查询结果
table_frame = tk.Frame(self.result_text)
table = ttk.Treeview(table_frame, columns=header, show='headings')
table.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
# 设置表格列标题
for col in header:
table.heading(col, text=col)
table.column(col, width=120) # 调整间隔距离
for row in records:
table.insert('', tk.END, values=row)
# 创建一个垂直滚动条并将其与表格关联
scrollbar = ttk.Scrollbar(table_frame, orient=tk.VERTICAL, command=table.yview)
table.configure(yscrollcommand=scrollbar.set)
scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
# 将表格和滚动条添加到一个框架中
table.pack(in_=table_frame, side=tk.LEFT, fill=tk.BOTH, expand=True)
table_frame.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
scrollbar.pack(in_=table_frame, side=tk.RIGHT, fill=tk.Y)
```
你可以根据需要调整表格和滚动条的大小和位置,以适应你的界面需求。
阅读全文