簡體   English   中英

如何刪除tkinter中按鈕之間的空間?

[英]How to remove space between buttons in tkinter?

在我的應用程序中,我看到彩色按鈕之間有很多我不想要的空間,我該如何刪除它們? 我嘗試使用button.pack(pady=0)作為按鈕,但沒有任何效果

我的 tkinter 應用的屏幕截圖顯示了按鈕之間的巨大差距

我在這里添加了我的代碼並嘗試只放置代碼的相關部分

我添加了畫布,所以我可以用它添加滾動條。 我使用按鈕是因為我想添加一個方法來顯示可以編輯/刪除任務的頁面。

class TodoFrame(Frame):
    def __init__(self, parent, controller):
        Frame.__init__(self, parent)

        self.canvas = Canvas(self)
        self.scrollbar = Scrollbar(self, orient="vertical", command=self.canvas.yview)
        task_frame = Frame(self.canvas, height=self.winfo_height()-100)
        task_frame.pack(fill="x", expand=True)
        self.canvas.create_window(0, 0, anchor='center', window=task_frame, width=self.winfo_width(), height=self.winfo_height()-100)

        priority_colors = ("#00CED1", "#00FA9A", "#FF6347", "#B0C4DE")  # colors for buttons
        # the db.fetch_incomplete_tasks() fetches tasks from mysql database
        # and returns a list of tuples containing title, description, priority and completion status of the task
        self.incomplete_tasks = sorted(db.fetch_incomplete_tasks(), key=lambda x: x[2])  # sorting list by priority
        if self.incomplete_tasks:
            incomplete_task_label = Label(task_frame, text="Incomplete Tasks", font=('calibri', 16))
            incomplete_task_label.pack(padx=(50, 0), anchor="center")
            
            for task in self.incomplete_tasks:
                title, description, priority, status = task
                task_btn = Button(task_frame, text=title, bg=priority_colors[priority-1], bd=0, width=25, wraplength=400, justify="left", pady=5)
                task_btn.pack(expand=True, padx=(50,0))

所以問題是我在這一行中設置了畫布的高度self.canvas.create_window(0, 0, anchor='center', window=task_frame, width=self.winfo_width(), height=self.winfo_height()-100)

這導致了額外空間的形成,按鈕之間的空間是為了填補這個空白

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM