Как получить цвет текущей темы системы пользователя - PullRequest
0 голосов
/ 16 октября 2019

Привет, я работаю над проектом Python GUI и обнаружил, что цвет рамки моего приложения зависит от цвета темы системы пользователя. Я хочу, чтобы у моего приложения был тот же цвет, могу ли я знать, как мне этого добиться? Мое приложение в основном для Windows, но если есть способ для Linux, это было бы здорово. Я использую tkinter кстати.
Или, может быть, как получить цвет из командной строки, так как у нас есть os.system(command)?

Обновление: я пробовал входы, перечисленные в стиль виджета , но ни один из них не работает, моя система имеет цвет темы light blue

from tkinter import *

if __name__ == '__main__':
    root = Tk()
    root['bg'] = 'SystemButtonFace'  # white
    root['bg'] = 'SystemBackground'  # black
    root['bg'] = 'SystemButtonText'  # black
    root['bg'] = 'SystemAppWorkspace'  # grey
    root['bg'] = 'SystemActiveBorder'  # grey
    root['bg'] = 'SystemActiveCaption'  # light grey
    root['bg'] = 'SystemInactiveCaption'  # light grey
    root['bg'] = 'SystemButtonShadow'  # darker grey
    root['bg'] = 'SystemButtonHighlight'  # white with a bit grey
    root['bg'] = 'SystemCaptionText'  # black
    root['bg'] = 'SystemDisabledText'  # darker grey
    root['bg'] = 'SystemHighlight'  # light dark blue
    root['bg'] = 'SystemHighlightText'  # white
    root['bg'] = 'SystemInactiveBorder'  # white
    root['bg'] = 'SystemInactiveCaptionText'  # black
    root['bg'] = 'SystemMenu'  # white
    root['bg'] = 'SystemMenuText'  # black
    root['bg'] = 'SystemScrollbar'  # grey
    root['bg'] = 'SystemWindow'  # white
    root['bg'] = 'SystemWindowFrame'  # dark grey
    root['bg'] = 'SystemWindowText'  # black

    root.mainloop()

Настройка фонак черному не устанавливает рамку к черному, и я не могу найти способ получить светло-голубой цвет
info

1 Ответ

1 голос
/ 16 октября 2019

Вы должны использовать собственный цвет RGB самостоятельно.

Используйте клавишу 'bg', чтобы узнать свой цвет фона.

В любом случае, если вы хотите добиться собственной настройки Tkinter. Вы можете выполнить следующие действия:

from tkinter import *

root = Tk()

print(root['bg']) # Output: SystemButtonFace
root.configure(bg = '#FF0000') # Configuring new color RED
print(root['bg']) # Output: #FF0000

root.mainloop()

На этой странице больше информации о стилевом оформлении tkinter:

Стилизация виджетов

Посмотрите наабзац системных цветов по умолчанию для Macintosh и Windows.

Есть вероятность, что для Linux нет системных цветов, так как он обычно управляется черной командной строкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...