self.right_top_button1 = ttk.Button(self.frame_right_top, text='新建教师信息', width=20, command=self.new_...
时间: 2023-06-18 19:05:03 浏览: 83
这段代码是在创建一个名为 `right_top_button1` 的 ttk.Button 对象,该对象位于 `frame_right_top` 中,并且其标签显示为“新建教师信息”,宽度为20,并在被点击时调用 `self.new_...` 函数。其中的 `self` 可能是指当前对象的实例,`new_...` 可能是一个函数名,但由于代码被截断,无法确定其具体实现。
相关问题
class InventoryApp: def init(self, master): self.master = master master.title("物料进出库统计") self.master.state('zoomed') # 窗口最大化 # 创建右侧的工具栏 toolbar_frame = ttk.Frame(master, width=20) toolbar_frame.pack(side='right', fill='y') # 创建底部的工具栏 bottom_frame = ttk.Frame(master, height=20) bottom_frame.pack(side='bottom', fill='x') # 创建左侧面板 self.container = tk.Frame(master, width=100, bg='lightcyan') self.container.pack(side=tk.LEFT, fill=tk.BOTH) # 创建工具栏 toolbar = tk.Frame(master, height=0.2) self.selected_label = tk.Label(toolbar, text="", fg="red", font=("Arial", 12)) self.selected_label.pack(side=tk.LEFT, padx=0.02, pady=0.02) # 创建左上方面板 self.container_top = tk.Frame(self.container, width=100, bg='lightcyan') self.container_top.pack(side=tk.TOP, fill=tk.BOTH, expand=True) # 创建左下方面板 self.container_bottom = tk.Frame(self.container, width=100, bg='lightcyan') self.container_bottom.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True) # 创建右侧面板 self.container1 = tk.Frame(master) self.container1.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) # 打开Excel文件 self.wb = openpyxl.load_workbook(庫存) self.record_sheet = self.wb["出入庫明細"] self.data_sheet = self.wb["庫存明細"]# 添加显示excel内容的按钮 self.show_button = tk.Button(self.container_bottom, text="显示Excel内容", command=self.show_excel) self.show_button.grid(row=12, column=0, columnspan=2, padx=5, pady=5) # 创建底部工具栏 bottom_toolbar = tk.Frame(master, bg='white') bottom_toolbar.pack(side=tk.BOTTOM, fill=tk.X) # 创建标签 label = tk.Label(self.container1, text="出入庫明細") label.pack(side=tk.TOP) # 创建文本框1 text_frame = tk.Frame(self.container1) text_frame.pack(side=tk.TOP, fill=tk.BOTH, expand=True) self.result_text = tk.Text(text_frame) self.result_text.pack(side=tk.TOP, fill=tk.BOTH, expand=True) # 创建标签2 label2 = tk.Label(self.container1, text="庫存明細") label2.pack(side=tk.TOP) # 创建文本框2 text_frame2 = tk.Frame(self.container1) text_frame2.pack(side=tk.BOTTOM, fill=tk.BOTH, expand=True) self.result_text2 = tk.Text(text_frame2) self.result_text2.pack(side=tk.TOP, fill=tk.BOTH, expand=True)
这段代码是一个 Python 的 GUI 应用程序,用于管理库存进出库的统计。它使用了 tkinter 和 openpyxl 库,创建了一个窗口,包含了左侧和右侧两个面板,以及底部和右侧的工具栏。左侧面板包括左上和左下两个子面板,右侧面板包括一个文本框和一个标签。程序通过打开 Excel 文件,加载出入库明细和库存明细,并且可以通过点击显示 Excel 内容的按钮,将内容显示在左侧面板的文本框中。
class InventoryApp: def init(self, master): self.master = master master.title("物料进出库统计") # 创建标签和文本框 self.label1 = tk.Label(master, text="物料名称:") self.label1.grid(row=0, column=0, padx=5, pady=5) self.material_name = tk.Entry(master) self.material_name.grid(row=0, column=1, padx=5, pady=5) self.label2 = tk.Label(master, text="数量:") self.label2.grid(row=1, column=0, padx=5, pady=5) self.material_qty = tk.Entry(master) self.material_qty.grid(row=1, column=1, padx=5, pady=5) # 创建进出库按钮 self.in_button = tk.Button(master, text="进库", command=self.in_stock) self.in_button.grid(row=2, column=0, padx=5, pady=5) self.out_button = tk.Button(master, text="出库", command=self.out_stock) self.out_button.grid(row=2, column=1, padx=5, pady=5) # 添加显示excel内容的按钮 self.show_button = tk.Button(master, text="显示Excel内容", command=self.show_excel) self.show_button.grid(row=3, column=0, padx=5, pady=5) # 打开Excel文件 self.wb = openpyxl.load_workbook(r"C:\Users\bing3_chen\Desktop\1.xlsx") self.record_sheet = self.wb["記錄"] self.data_sheet = self.wb["數據"] # 显示excel内容的回调函数 def show_excel(self): # 创建一个新窗口 top = tk.Toplevel(self.master) # 创建表格用于显示第一个工作表 columns1 = [col[0] for col in self.record_sheet.iter_cols()] treeview1 = ttk.Treeview(top, columns=columns1, show="headings") treeview1.grid(row=0, column=0, padx=5, pady=5) # 设置表格列的标题和宽度 for col in columns1: treeview1.heading(col, text=col) treeview1.column(col, width=100, anchor="center") # 显示第一个工作表的内容 for row in self.record_sheet.iter_rows(values_only=True): treeview1.insert("", tk.END, values=row) # 创建表格用于显示第二个工作表 columns2 = [col[0] for col in self.data_sheet.iter_cols()] treeview2 = ttk.Treeview(top, columns=columns2, show="headings") treeview2.grid(row=1, column=0, padx=5, pady=5) # 设置表格列的标题和宽度 for col in columns2: treeview2.heading(col, text=col) treeview2.column(col, width=100, anchor="center") # 显示第二个工作表的内容 for row in self.data_sheet.iter_rows(values_only=True): treeview2.insert("", tk.END, values=row)修改這個代碼不打開新的窗口,就在原本窗口的右側顯示,并且兩個文本框大小一致,
你可以尝试以下修改代码:
1. 首先,需要在主窗口中添加一个容器,用于放置表格和文本框。
2. 然后,将显示excel内容的按钮的回调函数修改为在容器中创建表格,而不是打开新窗口。
3. 最后,将两个文本框的大小设置为一致。
修改后的代码如下:
```
class InventoryApp:
def __init__(self, master):
self.master = master
master.title("物料进出库统计")
# 创建容器,用于放置表格和文本框
self.container = tk.Frame(master)
self.container.grid(row=0, column=0, padx=5, pady=5)
# 创建标签和文本框
self.label1 = tk.Label(self.container, text="物料名称:")
self.label1.grid(row=0, column=0, padx=5, pady=5)
self.material_name = tk.Entry(self.container, width=20)
self.material_name.grid(row=0, column=1, padx=5, pady=5)
self.label2 = tk.Label(self.container, text="数量:")
self.label2.grid(row=1, column=0, padx=5, pady=5)
self.material_qty = tk.Entry(self.container, width=20)
self.material_qty.grid(row=1, column=1, padx=5, pady=5)
# 创建进出库按钮
self.in_button = tk.Button(self.container, text="进库", command=self.in_stock)
self.in_button.grid(row=2, column=0, padx=5, pady=5)
self.out_button = tk.Button(self.container, text="出库", command=self.out_stock)
self.out_button.grid(row=2, column=1, padx=5, pady=5)
# 添加显示excel内容的按钮
self.show_button = tk.Button(self.container, text="显示Excel内容", command=self.show_excel)
self.show_button.grid(row=3, column=0, columnspan=2, padx=5, pady=5)
# 打开Excel文件
self.wb = openpyxl.load_workbook(r"C:\Users\bing3_chen\Desktop\1.xlsx")
self.record_sheet = self.wb["記錄"]
self.data_sheet = self.wb["數據"]
# 显示excel内容的回调函数
def show_excel(self):
# 创建表格用于显示第一个工作表
columns1 = [col[0] for col in self.record_sheet.iter_cols()]
treeview1 = ttk.Treeview(self.container, columns=columns1, show="headings")
treeview1.grid(row=0, column=2, rowspan=2, padx=5, pady=5, sticky="nsew")
# 设置表格列的标题和宽度
for col in columns1:
treeview1.heading(col, text=col)
treeview1.column(col, width=100, anchor="center")
# 显示第一个工作表的内容
for row in self.record_sheet.iter_rows(values_only=True):
treeview1.insert("", tk.END, values=row)
# 创建表格用于显示第二个工作表
columns2 = [col[0] for col in self.data_sheet.iter_cols()]
treeview2 = ttk.Treeview(self.container, columns=columns2, show="headings")
treeview2.grid(row=2, column=2, padx=5, pady=5, sticky="nsew")
# 设置表格列的标题和宽度
for col in columns2:
treeview2.heading(col, text=col)
treeview2.column(col, width=100, anchor="center")
# 显示第二个工作表的内容
for row in self.data_sheet.iter_rows(values_only=True):
treeview2.insert("", tk.END, values=row)
# 设置文本框大小一致
self.material_name.config(width=20)
self.material_qty.config(width=20)
```
阅读全文