Button(root, text='添加学生', width=10,command=add).pack(side=LEFT) Button(root, text='编辑学生', width=10,command=edit).pack(side=LEFT) Button(root, text='删除学生', width=10,command=dele).pack(side=LEFT) Button(root, text='刷新', width=10,command=query).pack(side=LEFT) text=tk.Text() text.pack(fill=X) mainloop()
时间: 2024-03-15 12:41:59 浏览: 136
这段代码看起来是使用 Python 的 Tkinter 模块实现了一个简单的 GUI 界面,包含了四个按钮:添加学生、编辑学生、删除学生和刷新,以及一个文本框。当点击不同的按钮时,会执行相应的函数:add、edit、dele 和 query。同时,通过调用 mainloop() 函数来进入 Tkinter 的事件循环,等待用户交互。
相关问题
import tkinter as tk class Three_layout(): def __init__(self, top): self.top = top self.frame = tk.Frame(self.top, bg='Gold', width=1100, height=234, highlightthickness=2, highlightbackground='Black') self.frame.place(x=0, y=670) self.canvas = tk.Canvas(self.frame, width=1077, height=226, bg='Gold') self.canvas.pack(side='left', fill='both', expand=True) self.scrollbar = tk.Scrollbar(self.frame, command=self.canvas.yview, orient=tk.VERTICAL) self.scrollbar.pack(side='right', fill='y') self.canvas.configure(yscrollcommand=self.scrollbar.set) self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True) self.button_frame = tk.Frame(self.canvas, bg='Yellow') self.canvas.create_window((0, 0), window=self.button_frame, anchor="nw") self.Content() self.Text_Add() def Content(self): self.text = tk.Text(self.button_frame, width=1077) self.text.pack(side='left', fill='both', expand=True) self.text.insert('end', f'\n') self.text.config(state='disabled') self.button_frame.update_idletasks() self.canvas.configure(scrollregion=self.canvas.bbox("all")) def Text_Add(self): self.text.insert('end', "Hello, world!")为什么没有显示hello,world
在你的代码中,你在`Text_Add()`方法中调用了`insert()`方法,但是你没有将`state`设置为`normal`,这会导致你无法在`Text`控件中插入文本。所以你需要在调用`insert()`方法之前,将`state`设置为`normal`,插入完文本之后再将`state`设置为`disabled`,以保持`Text`控件的只读状态。修改后的代码如下:
```
import tkinter as tk
class Three_layout():
def __init__(self, top):
self.top = top
self.frame = tk.Frame(self.top, bg='Gold', width=1100,
height=234, highlightthickness=2, highlightbackground='Black')
self.frame.place(x=0, y=670)
self.canvas = tk.Canvas(self.frame, width=1077, height=226, bg='Gold')
self.canvas.pack(side='left', fill='both', expand=True)
self.scrollbar = tk.Scrollbar(self.frame, command=self.canvas.yview, orient=tk.VERTICAL)
self.scrollbar.pack(side='right', fill='y')
self.canvas.configure(yscrollcommand=self.scrollbar.set)
self.canvas.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)
self.button_frame = tk.Frame(self.canvas, bg='Yellow')
self.canvas.create_window((0, 0), window=self.button_frame, anchor="nw")
self.Content()
self.Text_Add()
def Content(self):
self.text = tk.Text(self.button_frame, width=1077)
self.text.pack(side='left', fill='both', expand=True)
self.text.insert('end', f'\n')
self.text.config(state='disabled')
self.button_frame.update_idletasks()
self.canvas.configure(scrollregion=self.canvas.bbox("all"))
def Text_Add(self):
self.text.config(state='normal')
self.text.insert('end', "Hello, world!")
self.text.config(state='disabled')
root = tk.Tk()
app = Three_layout(root)
root.mainloop()
```
在修改后的代码中,我将`Text_Add()`方法中的`self.text.config(state='normal')`添加了进去,以便在调用`insert()`方法之前将`state`设置为正常状态。
class ExcelApp: def init(self, master): self.master = master master.title("Excel App") # 获取屏幕的宽度和高度 screen_width = master.winfo_screenwidth() screen_height = master.winfo_screenheight() # 将窗口的大小设置为屏幕的大小 master.geometry("%dx%d" % (screen_width, screen_height)) # 创建菜单栏 menubar = tk.Menu(master) master.config(menu=menubar) # 创建文件菜单及其子菜单 filemenu = tk.Menu(menubar, tearoff=0) filemenu.add_command(label="PA綫", command=lambda: self.load_excel("D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx", "PA綫")) filemenu.add_command(label="PB綫", command=lambda: self.load_excel("D:\點檢系統存放資料夾\點檢明細\點檢内容明細.xlsx", "PB綫")) filemenu.add_command(label="Excel 3", command=lambda: self.load_excel("excel3.xlsx")) menubar.add_cascade(label="點檢綫別", menu=filemenu) # 创建帮助菜单及其子菜单 helpmenu = tk.Menu(menubar, tearoff=0) helpmenu.add_command(label="关于", command=self.show_about) menubar.add_cascade(label="帮助", menu=helpmenu) # 创建工具栏 toolbar = tk.Frame(master, height=30) tk.Button(toolbar, text="打开", command=lambda: QueryWindow(tk.Toplevel(root))).pack(side=tk.LEFT, padx=2, pady=2) tk.Button(toolbar, text="保存", command=self.save_to_excel).pack(side=tk.LEFT, padx=2, pady=2) toolbar.pack(side=tk.TOP, fill=tk.X) # 创建左侧面板 self.panel_left = tk.Frame(master, width=150, bg='lightcyan') self.panel_left.pack(side=tk.LEFT, fill=tk.Y) # 创建右侧面板 self.panel_right = tk.Frame(master) self.panel_right.pack(side=tk.LEFT, fill=tk.BOTH, expand=True)根據這個代碼儅用戶點擊打開按鈕時將打開一個新的窗口,在新的窗口可以根據日期,綫別查詢一個excel中相應數據内容,在添加一個可以下載按鈕,將用戶查詢的信息導入出來的代碼
以下是添加查询窗口和下载按钮的代码:
```
class QueryWindow:
def __init__(self, master):
self.master = master
self.master.title("查询")
self.master.geometry("300x200")
# 创建日期选择框
self.date_label = tk.Label(master, text="日期:")
self.date_label.pack()
self.date_entry = tk.Entry(master)
self.date_entry.pack()
# 创建綫別选择框
self.line_label = tk.Label(master, text="綫別:")
self.line_label.pack()
self.line_entry = tk.Entry(master)
self.line_entry.pack()
# 创建查询按钮
self.query_button = tk.Button(master, text="查询", command=self.query_data)
self.query_button.pack()
def query_data(self):
# 获取用户输入的日期和綫別
date = self.date_entry.get()
line = self.line_entry.get()
# 查询相应的数据
# ...
# 创建下载按钮
self.download_button = tk.Button(self.master, text="下载", command=self.download_data)
self.download_button.pack()
def download_data(self):
# 导出数据到Excel文件中
# ...
```
在打开按钮的回调函数中,创建一个新的查询窗口对象:
```
tk.Button(toolbar, text="打开", command=lambda: QueryWindow(tk.Toplevel(root))).pack(side=tk.LEFT, padx=2, pady=2)
```
当用户点击打开按钮时,会打开一个新的窗口,用户可以输入日期和綫別进行查询,查询完毕后会显示一个下载按钮,用户可以点击下载按钮将查询结果导出到Excel文件中。
阅读全文
相关推荐















