我将主窗口的主题设置为 awtheme 'awdark'。所有具有 ttk 扩展名的小部件都根据主题自行设置其外观,但滚动文本小部件显示为白色(即,字段颜色为以及滚动条的颜色和外观)可能是因为它不是 ttk 的一部分。顺便说一下,我的滚动文本小部件包含在 ttk.Frame 小部件中。有什么解决方法吗?
问问题
866 次
1 回答
2
是否有 ttk 相当于 Scrolledtext 小部件 Tkinter
不,那里没有。ttk 小部件没有文本小部件。
scrolledtext 小部件只是一个文本小部件和滚动条,仅此而已。您可以创建自己的使用 ttk 滚动条,只需几行代码。
这是一个不使用类的解决方案。一个基于类的只是几行额外的代码。
import tkinter as tk
from tkinter import ttk
root = tk.Tk()
frame = ttk.Frame(root)
frame.pack(fill="both", expand=True)
text = tk.Text(frame, wrap="none")
vsb = ttk.Scrollbar(frame, command=text.yview, orient="vertical")
hsb = ttk.Scrollbar(frame, command=text.xview, orient="horizontal")
text.configure(yscrollcommand=vsb.set, xscrollcommand=hsb.set)
frame.grid_rowconfigure(0, weight=1)
frame.grid_columnconfigure(0, weight=1)
vsb.grid(row=0, column=1, sticky="ns")
hsb.grid(row=1, column=0, sticky="ew")
text.grid(row=0, column=0, sticky="nsew")
root.mainloop()
于 2020-11-10T19:04:58.657 回答