Python 在MacOS中单击后,按钮暂时变为灰色

Python 在MacOS中单击后,按钮暂时变为灰色,python,macos,tkinter,python-2.x,Python,Macos,Tkinter,Python 2.x,我使用python tkinter在mac中编写了一个简单的GUI。一切正常,除了打开系统文件目录的按钮。我点击按钮后,按钮会变成灰色矩形一段时间。它将在不到1秒内恢复正常 我试图改变按钮的背景色,但我认为它在macOS中不起作用。我还尝试将activebackground颜色设置为与帧背景颜色相同,但似乎效果不太好 这是我的密码: import sys, os Path_lib = os.path.dirname( os.path.dirname(os.path

我使用python tkinter在mac中编写了一个简单的GUI。一切正常,除了打开系统文件目录的按钮。我点击按钮后,按钮会变成灰色矩形一段时间。它将在不到1秒内恢复正常

我试图改变按钮的背景色,但我认为它在macOS中不起作用。我还尝试将activebackground颜色设置为与帧背景颜色相同,但似乎效果不太好

这是我的密码:

import sys, os
Path_lib = os.path.dirname(
                os.path.dirname(os.path.abspath(__file__))
                )
if not Path_lib in sys.path:
    sys.path.append(Path_lib)


from Tkinter import *
import ttk,platform, threading, subprocess
import datetime as dt
import tkFileDialog
import ttk

def check_dir():
    if platform.system() in ("Linux", "Darwin"):
        init_dir = "~"
    if platform.system() == "Windows":
        init_dir = "C:\\"
    return init_dir

class GUI():
    def set_state(self,widgets,var):
        widgets.config(state=NORMAL if var.get() == 1 else DISABLED)

    def get_file_name(self, tabname):
        global filename, filename_2
        if tabname == "tab1":                    
            filename = tkFileDialog.askopenfilename(
                                initialdir=check_dir())
            self.file2.configure(state=NORMAL)
            self.file2.delete(0, END)
            self.file2.insert(0, filename)
            self.file2.configure(state='readonly')


    def __init__(self, root):
        self.root = root
        self.geometry = root.geometry("+600+200")
        self.configure = root.configure(bg=background_color)

        ##File Path Widget
        self.file = Frame(self.root, bg=background_color)
        self.file.pack(expand=True, fill=BOTH)

        Label(self.file, 
            text="All Open Today:", 
            font=("Helvetica", 15, "bold"), 
            bg=background_color,
            fg='#FA7160'
            ).pack(side=LEFT, padx=(5,5), pady= (0,10))

        self.file2 = Entry(self.file, 
                        highlightbackground=background_color,
                        state='readonly',
                        width=45)
        self.file2.pack(side=LEFT, fill=BOTH, padx=(0,10), pady= (0,10))

        self.file3 = Button(
            self.file,
            text="Open", 
            command=lambda: self.get_file_name(tabname="tab1"), 
            highlightbackground=background_color,
            font=("Helvetica", 15)
            )
        self.file3.pack(side=LEFT, padx=(0,10), pady= (0,10))

def main():
    global background_color, root, \
            App, filename
    filename = ""
    root = Tk()
    root.resizable(False,False)
    background_color = "#E3FFE3"
    App = GUI(root)
    root.mainloop()

if __name__ == '__main__':
    main()


灰色按钮的屏幕截图


您在问题中输入了足够的代码-您所说的似乎不是
按钮。请回答您的问题,并提供[mce]供其他人运行。顺便说一句,
pack()
方法返回代码分配给变量
self.save1_2
None
——尽管这可能不会导致灰色问题。我已经编辑了代码。它应该自己工作。是的,pack()方法返回none。我尝试不指定变量,但灰色矩形仍然出现。对不起,我没有Mac电脑可以测试它。在Windows上似乎可以正常工作。由于您使用的是Python2.x,请确保安装了Tkinter模块的最新版本。该按钮在MAC中也可以正常工作(单击后会弹出文件目录)。只是半秒的灰色矩形使GUI看起来很滞后。