python-3.x - 未应用 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")
仍然没有变化。
解决方案
您没有使用任何 ttk 小部件。普通的 tkinter 小部件不受 ttk 样式的影响。
通常这是通过导入 ttk 然后在小部件前面加上 ttk 来完成的
from tkinter import ttk
...
self.mainframe = ttk.Frame(self.master, border=3)
...
推荐阅读
- android - Android textIsSelectable 停止 TextView onClick 正常工作
- ansible - ansible jira 模块“msg”:“无法解码任何 JSON 对象”
- nginx - 如何使用 NGINX proxy_pass 将每个站点地图部分重定向到另一个 url
- javascript - Rails 5 使用 JQuery 在控制器中运行方法
- xamarin - 在从另一个继承的类中,如何在基类的构造函数中设置值?
- java - 在 java 中模拟 Chrome 浏览器 TLS/SSL 握手
- permission-denied - 如何解决鱼:无法打开临时文件'/opt/PhpStorm-191.6707.66/plugins/terminal/fish/fishd.tmp.6SUNyz':权限被拒绝
- amazon-web-services - 在 Terraform 嵌套循环中创建 AWS 安全组
- android - java.lang.IllegalStateException:查找包信息失败
- javascript - Android : 在 document.ready 的 javascript 中调用 Android 函数