簡體   English   中英

為什么 tkinter 上不顯示框架

[英]Why is frame not displaying on tkinter

我正在嘗試構建 2048,我制作的 GUI 沒有問題,但它只顯示單元格,而不是我創建的分數框架。 看着它,我自己也找不到任何不對勁的地方。 我相信我正確地創建了框架和 label,我認為它寫在正確的位置,但我一輩子都看不出它有什么問題。 在我繼續之前,有人可以告訴我我做錯了什么嗎?

import tkinter as tk

class Game(tk.Frame):
    def __init__(self):
        tk.Frame.__init__(self)
        self.grid()
        self.master.title("2048")

        self.main_grid = tk.Frame(
            self, bg="#a5c6e2", bd=3, width=600, height=600
        )
        self.main_grid.grid(pady=(100, 0))
        self.make_GUI()
        self.mainloop()
        

    def make_GUI(self):
        self.cells = []
        for i in range(4):
            row = []
            for j in range(4):
                cell_frame = tk.Frame(
                    self.main_grid,
                    bg="#5593c8",
                    width=150,
                    height=150
                )
                cell_frame.grid(row=i, column=j, padx=5, pady=5)
                cell_number = tk.Label(self.main_grid, bg="#3d84bf")
                cell_number.grid(row=i, column=j)
                cell_data = {"frame": cell_frame, "number":cell_number}
                row.append(cell_data)
            self.cells.append(row)


        score_frame = tk.Frame(self)
        score_frame.place(relx=0.5, rely=45, anchor="center")
        tk.Label(
            score_frame,
            text="score",
            font="helvetica"
        ).grid(row=0)
        self.score_label = tk.Label(score_frame, text="0", font="helvetica")
        self.score_label.grid(row=1)

Game()

問題出在score_frame.place(relx=0.5, rely=45, anchor="center")中。 relx/rely 只能是 0.0 和 1.0 之間的值,因為它們與您的 window 大小有關。

將依賴設置為 45 將使您的 label 大約 45 window 大小在 window 之外。

暫無
暫無

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

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