Python Tkinter 自定义主题

Est*_*eda 2 python themes tkinter

描述

我想使用 Tkinter / ttk 和 python 制作一个 GUI,原因是我想学习设计 GUI 的样式。

我试图找到有关如何设置“输入框”样式的信息,而不是背景,而是实际的“插入框”,但我找不到任何有关如何执行此操作的信息,并且内置主题隐藏得很好,因为我找不到这些任何一个..

图片演示:

  • 默认样式

默认样式

  • 我多么想要它

我多么想要它


我的问题

  • 这是否可能?如果可能,如何实现?
  • 有没有办法访问默认主题以便向它们学习?

Ste*_*ric 5

应用于 ttk.Entry 的标准样式根本不采用 fieldbackground 选项,该选项将更改文本输入字段的颜色。解决方案是创建一个响应该选项的新元素。

from tkinter import *
from tkinter import ttk

root_window = Tk()

estyle = ttk.Style()
estyle.element_create("plain.field", "from", "clam")
estyle.layout("EntryStyle.TEntry",
                   [('Entry.plain.field', {'children': [(
                       'Entry.background', {'children': [(
                           'Entry.padding', {'children': [(
                               'Entry.textarea', {'sticky': 'nswe'})],
                      'sticky': 'nswe'})], 'sticky': 'nswe'})],
                      'border':'2', 'sticky': 'nswe'})])

estyle.configure("EntryStyle.TEntry",
    fieldbackground="light blue")           # Set color here

entry = ttk.Entry(root_window, style="EntryStyle.TEntry")
entry.pack(padx=10, pady=10)

root_window.mainloop()
Run Code Online (Sandbox Code Playgroud)