Как изменить цвет переднего плана или фона кнопки Tkinter на Mac OS X?

Я работал над главами Tkinter в Python и столкнулся с проблемой, когда цвета переднего плана и фона кнопки не будут меняться. Я работаю над системой Mac OS X 10.6 с Python 2.6.1. Цвета ярлыка будут меняться, но не цвета кнопки. Например:

from Tkinter import * Label(None, text='label', fg='green', bg='black').pack() Button(None, text='button', fg='green', bg='black').pack() mainloop() 

В моей системе Mac цвета ярлыка меняются, но цвета кнопки нет. В системе Windows с Python 2.6.1 цвета ярлыка и кнопки меняются.

Кто-нибудь знает, что происходит не так?

Я проверил Interface Builder и, похоже, нет возможности изменить цвет фона или фона в этом инструменте. Существует возможность редактировать цвета переднего плана и фона ярлыка.

Система рендеринга Mac OS X (Quartz?) Может просто не поддерживать (легко) изменение fg и bg кнопки.

5 Solutions collect form web for “Как изменить цвет переднего плана или фона кнопки Tkinter на Mac OS X?”

Я думаю, что ответ заключается в том, что кнопки на mac просто не поддерживают изменение фона и цветов переднего плана. Как вы видели, это не уникально для Tk.

Для всех, кто случается по этому вопросу, как и я, решение заключается в использовании модуля ttk , доступного по умолчанию для OS X 10.7. К сожалению, установка цвета фона по-прежнему не работает из коробки, но цвет текста делает.

Это требует небольшого изменения кода:

Оригинал:

 from Tkinter import * Label(None, text='label', fg='green', bg='black').pack() Button(None, text='button', fg='green', bg='black').pack() mainloop() 

С ttk:

 import tkinter as tk from tkinter import ttk root = tk.Tk() # background="..." doesn't work... ttk.Style().configure('green/black.TLabel', foreground='green', background='black') ttk.Style().configure('green/black.TButton', foreground='green', background='black') label = ttk.Label(root, text='I am a ttk.Label with text!', style='green/black.TLabel') label.pack() button = ttk.Button(root, text='Click Me!', style='green/black.TButton') button.pack() root.mainloop() 

Существует решение для изменения фона кнопок на Mac.

Использование:

 highlightbackground=color 

Например:

 submit = Button(root, text="Generate", highlightbackground='#3E4149') 

Это приводит к следующему: хорошая кнопка, которая соответствует фону:

кнопка

Я смотрел, почему это не работает. Я нашел быстрый способ попытаться исправить это, чтобы иметь метку, а затем привязать клик с меткой. Затем на короткое время измените цвета ярлыков, чтобы имитировать щелчок. Вот пример.

 def buttonPress(*args): searchB.config(state = "active") searchB.update() time.sleep(0.2) searchB.config(state = "normal") ## Whatever command you want searchB = Label(main, text = "Search", bg = "#fecc14", fg = "Black", activebackground = "Red", highlightbackground="Black") searchB.bind("<Button-1>", startSearch) searchB.pack() 

Подтверждение следующего кода может изменить фон кнопки tkinter на Mac OS X.

 self.btn_open = tk.Button(self.toolbar, text = "Open", command=self.open, highlightbackground = "gray") 

Но он не может изменить bg ttk.Button.

  • как получить эффект границы в tkinter ttk?
  • Почему я получаю уродливые фигурные скобки вокруг моего текста в виджетах ярлыков? - Tkinter
  • Способ воспроизведения видеофайлов в Tkinter?
  • Получить размер окна Tkinter
  • Обнаружение ввода ключа в Python
  • Tkinter блокирует питон при загрузке Icon и tk.mainloop в потоке
  • python tkinter отображает анимированный GIF с использованием PIL
  • Как изменить цвет кнопки с помощью tkinter
  • Tkinter связывает функцию с аргументами с виджетами
  • Закрыть окно tkinter?
  • Python tkinter змея игровой лаг
  •  
    Interesting Posts for Van-Lav

    Почему мы не должны использовать sys.setdefaultencoding («utf-8») в скрипте py?

    Как логический оператор работает с строкой в ​​python

    не может переопределить sys.excepthook

    Леновый список Python

    Как ограничить запрос mongo в python

    Библиотека подгонки кривой Python, которая позволяет мне назначать границы параметрам

    Как получить размер экрана в Tkinter?

    Один экземпляр django для одной базы данных и разных экземпляров django

    Как использовать переменную внутри регулярного выражения?

    Настройка цветной темы vim для выделенных фигурных скобок

    Переключение Django, для блока кода, переключает язык, поэтому переводы выполняются на одном языке

    как передать параметры функции при использовании timeit.Timer ()

    Базовая загрузка и сохранение файлов на диске в python?

    Выбор наиболее свободного текста из набора возможностей с помощью проверки грамматики (Python)

    Время составления графика в Python с Matplotlib

    Python - лучший язык программирования в мире.