@TOC谁帮忙看看这个代码,显示的图片有些不正常,里面的框框太矮了,怎么调整让它能变高一些
代码如下:
import tkinter as tk
from tkinter import ttk, filedialog
import os
class App(tk.Frame):
def __init__(self, master=None):
super().__init__(master)
self.master = master
self.pack()
self.create_widgets()
self.grid_rowconfigure(0, weight=1)
self.grid_rowconfigure(1, weight=1)
self.grid_rowconfigure(2, weight=1)
self.grid_rowconfigure(3, weight=1)
self.grid_rowconfigure(4, weight=1)
self.grid_columnconfigure(0, weight=1)
def create_widgets(self):
self.search_label = tk.Label(self, text="请输入要搜索的关键字:")
self.search_label.pack()
self.search_entry = tk.Entry(self)
self.search_entry.pack()
self.path_button = tk.Button(self, text="选择搜索位置", command=self.select_dir)
self.path_button.pack()
self.search_button = tk.Button(self, text="开始搜索", command=self.search)
self.search_button.pack()
self.result_tree = ttk.Treeview(self)
self.result_tree['columns'] = ('size', 'modified_time')
self.result_tree.heading('#0', text="文件路径")
self.result_tree.column("#0", width=1000)
self.result_tree.heading('size', text="文件大小")
self.result_tree.column("size", width=100)
self.result_tree.heading('modified_time', text="修改时间")
self.result_tree.column("modified_time", width=200)
self.result_tree.pack(fill=tk.BOTH, expand=True)
self.scrollbar = ttk.Scrollbar(self, orient=tk.VERTICAL, command=self.result_tree.yview)
self.scrollbar.pack(side=tk.RIGHT, fill=tk.Y)
self.result_tree.configure(yscrollcommand=self.scrollbar.set)
self.popup_menu = tk.Menu(self.result_tree, tearoff=0)
self.popup_menu.add_command(label="打开", command=self.open_file)
self.popup_menu.add_command(label="复制", command=self.copy_file)
self.popup_menu.add_command(label="另存为", command=self.save_file_as)
self.popup_menu.add_command(label="重命名", command=self.rename_file)
self.popup_menu.add_command(label="删除", command=self.delete_file)
self.result_tree.bind("<ButtonRelease-3>", self.show_popup_menu)
def select_dir(self):
self.dir_path = filedialog.askdirectory()
self.search_path_label = tk.Label(self, text="当前搜索位置:" + self.dir_path)
self.search_path_label.pack()
def search(self):
self.result_tree.delete(*self.result_tree.get_children())
keyword = self.search_entry.get()
if not self.dir_path:
self.result_tree.insert("", "end", text="请先选择搜索位置!")
return
for dirpath, dirnames, filenames in os.walk(self.dir_path):
for filename in filenames:
if keyword in filename:
path = os.path.join(dirpath, filename)
size = os.path.getsize(path)
modified_time = os.path.getmtime(path)
item = self.result_tree.insert("", "end", text=path, values=(size, modified_time))
self.result_tree.item(item, open=True)
def show_popup_menu(self, event):
self.popup_menu.post(event.x_root, event.y_root)
def open_file(self):
selected_item = self.result_tree.focus()
selected_text = self.result_tree.item(selected_item)['text']
os.startfile(selected_text)
def copy_file(self):
selected_item = self.result_tree.focus()
selected_text = self.result_tree.item(selected_item)['text']
self.clipboard_clear()
self.clipboard_append(selected_text)
def save_file_as(self):
selected_item = self.result_tree.focus()
selected_text = self.result_tree.item(selected_item)['text']
new_path = filedialog.asksaveasfilename()
os.rename(selected_text, new_path)
def rename_file(self):
selected_item = self.result_tree.focus()
selected_text = self.result_tree.item(selected_item)['text']
new_name = filedialog.asksaveasfilename()
os.rename(selected_text, new_name)
def delete_file(self):
selected_item = self.result_tree.focus()
selected_text = self.result_tree.item(selected_item)['text']
os.remove(selected_text)
root = tk.Tk()
app = App(master=root)
app.mainloop()
全屏时显示如下:
这种东西太不符合正常人的审美,谁帮提一下修改意见,上面的标签和输入框不在同一行,两个按钮不在同一行,尤其是里面的白色框框并没有随着最大化而最大化,该怎么修改代码?