Кнопка изменилась на серый цвет на короткое время после нажатия в MacOS - PullRequest
0 голосов
/ 28 октября 2019

Я написал простой графический интерфейс в Mac, используя Python Tkinter. Все хорошо, кроме кнопки открытия системного каталога файлов. Кнопка превратится в серый прямоугольник на короткое время после того, как я нажму кнопку. И он вернется в нормальное состояние менее чем за 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()


Скриншот серогокнопка

Screenshot showing greyed button

...