Я написал простой графический интерфейс в 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()
Скриншот серогокнопка