Почему при подключении стилей появляются два windows? - PullRequest
0 голосов
/ 22 января 2020

введите описание изображения здесь У меня есть такой код:

from tkinter import Tk
import tkinter.ttk as ttk

"""Styles"""
style = ttk.Style()
style.configure('OrangeButton.TButton', foreground='white', background='#ff9203')
style.map('OrangeButton.TButton',
          foreground=[('pressed', 'white'), ('active', 'white')],
          background=[('pressed', '!disabled', '#adadad'), ('active', '#de8e26')])

root = Tk()

button = ttk.Button(root, text="Ok", width=20, style='OrangeButton.TButton')
button.pack(padx=50, pady=50)

root.mainloop()

Я новичок в этом. Я искал решение Inte rnet, но не смог его найти. Везде пишут о widthdraw (), но это не помогает. Два windows всегда появляются, и настроенный стиль не применяется к кнопке. Что я делаю неправильно? Как мне найти в Google эту проблему? Скажи мне, пожалуйста. Спасибо.

1 Ответ

0 голосов
/ 22 января 2020

Вам просто нужно определить ttk.Style() в окне root.

from tkinter import Tk
import tkinter.ttk as ttk

root = Tk()

"""Styles"""
style = ttk.Style()

# add the these_use option and use the 'clam' theme
style.theme_use('clam')

style.configure('OrangeButton.TButton', foreground='white', background='#ff9203')
style.map('OrangeButton.TButton',
          foreground=[('pressed', 'white'), ('active', 'white')],
          background=[('pressed', '!disabled', '#adadad'), ('active', '#de8e26')])

button = ttk.Button(root, text="Ok", width=20, style='OrangeButton.TButton')
button.pack(padx=50, pady=50)

root.mainloop()

Надеюсь, это решит проблему.

...