Как сделать так, чтобы Python Tkinter соответствовал кнопке ОС - PullRequest
0 голосов
/ 01 февраля 2019

Почему tkinter.Button () отображается как какая-то древняя кнопка в стиле ОС, в то время как в окне сообщений, таком как tkinter.messagebox.showinfo (), имеется кнопка OK, использующая текущую версию ОС?

Моя ОСэто винда.Не уверен, существует ли эта проблема в Mac OS, но в любом случае люди, использующие мои инструменты, работают в Windows.

Пример фрагмента кода, который я нашел здесь , показывает, как кнопки отличаются.

Изображение :

enter image description here

Вопрос :

ЕстьЕсть ли способ сделать так, чтобы tkinter.Button () выглядел как кнопка внутри окна сообщений, которая, кажется, использует текущий стиль ОС?

Код :

from tkinter import *
from tkinter import messagebox
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
def clicked():
    messagebox.showinfo('Message title', 'Message content')
btn = Button(window,text='Click here', command=clicked)
btn.grid(column=0,row=0)
window.mainloop()

Ответы [ 2 ]

0 голосов
/ 01 февраля 2019

Вы можете использовать tkinter.ttk, который предоставляет современную тему в стиле ОС для ваших виджетов TK.Пример из документов :

from tkinter import ttk
import tkinter

root = tkinter.Tk()

ttk.Style().configure("TButton", padding=6, relief="flat",
   background="#ccc")

btn = ttk.Button(text="Sample")
btn.pack()

root.mainloop()
#Output:

enter image description here

0 голосов
/ 01 февраля 2019

Используйте tkinter.ttk для получения тематической версии

from tkinter.ttk import *
from tkinter import messagebox
window = Tk()
window.title("Welcome to LikeGeeks app")
window.geometry('350x200')
def clicked():
    messagebox.showinfo('Message title', 'Message content')
btn = Button(window,text='Click here', command=clicked)
btn.grid(column=0,row=0)
window.mainloop()

Before After

документ

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