我正在尝试为学校项目制作一个简单的GUI。我刚开始使用tkinter。我过去经常使用pygame创建GUI,这对客户化很好,但对效率并不是很好,哈哈。
我正在为我的/graphs文件夹中的每个文件创建一个按钮。在这段代码第42行中,我似乎无法更改按钮的背景色。这是我在tkinter遇到的一个令人担忧的问题。我不知道是我做错了什么,还是我使用的框架有问题。
我正试着把背景色调成红色。
我正在使用MACOS,我知道tkinter和mac有一些复杂之处,但我不能使用tkmacosx,因为我需要这个项目也可以在windows和linux上运行。
感谢您的帮助,如果您对我不适用的tkinter常见做法有任何建议,或者您有解决我问题的方法,请不要犹豫!
这是输出和代码
import tkinter as tk
import os
# colors
SILVER = "#BFACAA"
BLACK = "#02020A"
OXFORD_BLUE = "#05204A"
WISTERIA = "#B497D6"
LAVENDER = "#E1E2EF"
RED = "#FF0000"
# Sizes
WIDTH = 800
HEIGHT = 600
# Path
PRJ_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
class Window:
    def __init__(self):
        self.window = tk.Tk()
        self.window.title("Graph Scheduler")
        self.window.geometry(f"{WIDTH}x{HEIGHT}")
        self.window.configure(background=LAVENDER)
        # Title and title box
        title_box = tk.Frame(self.window, bg=SILVER, width=WIDTH)
        title_box.pack(fill="x")
        title = tk.Label(title_box, text="Graph Scheduler", font=("Arial", 40), bg=SILVER, fg=BLACK)
        title.pack(pady=5)
        # File bar
        file_bar = tk.Frame(self.window, bg=OXFORD_BLUE, width=200, height=HEIGHT)
        file_bar.pack(fill="y", side="left")
        # File bar buttons
        file_bar_buttons = tk.Frame(file_bar, bg=OXFORD_BLUE, width=200, height=HEIGHT)
        file_bar_buttons.pack(fill="y", side="left")
        for file in os.listdir(PRJ_DIR + "/graphs"):
            if file.endswith(".txt"):
                file_bar_button = tk.Button(file_bar_buttons, text=file,background=RED, fg=SILVER, font=("Arial", 20), width=10, height=2)
                file_bar_button.pack(pady=5)
        self.window.mainloop()
Window()```