首页 > 解决方案 > 未应用 Tkinter 样式

问题描述

我只是想改成“蛤”式,但没有任何改变。我有一个用其他小部件编写的更广泛的 UI,所以我知道当我尝试更改样式时没有任何变化:

我正在使用 Linux Mint 19.2、Python 3.6.8 并使用 Pycharm。我已经通过从终端运行验证了 Pycharm 不是问题。

from tkinter import *
from tkinter.ttk import Style

class Window(Frame):

    def __init__(self, master=None):

        self.master = master
        self.add_widgets()



    def add_widgets(self, ):
        self.mainframe = Frame(self.master, border=3)
        self.mainframe.grid(columnspan=3, sticky='w', padx=5, pady=5)

        Label(self.mainframe, text="Directory Selection", font='Helvetica 12 bold italic underline').grid(column=0, sticky="w")
        self.pathframe = Frame(self.mainframe, relief=RIDGE, border=2)
        self.pathframe.grid(rowspan=3, columnspan=3, sticky='w', padx=0, pady=10)


        button_color="dark gray";

        Button(self.pathframe, text="Run Folder Path", bg=button_color).grid(sticky="w")
        Entry(self.pathframe, width=43).grid(row=0, column=1, sticky="w")



root = Tk()

style = Style()
style.theme_use("clam")


root.title('TestUI')
root.geometry("500x500")
app = Window(root)
root.mainloop()

我也试过:

style = Style(root)
style.theme_use("clam")

仍然没有变化。

标签: python-3.xtkinter

解决方案


您没有使用任何 ttk 小部件。普通的 tkinter 小部件不受 ttk 样式的影响。

通常这是通过导入 ttk 然后在小部件前面加上 ttk 来完成的

from tkinter import ttk
...
self.mainframe = ttk.Frame(self.master, border=3)
...

推荐阅读