1

我将主窗口的主题设置为 awtheme 'awdark'。所有具有 ttk 扩展名的小部件都根据主题自行设置其外观,但滚动文本小部件显示为白色(即,字段颜色为以及滚动条的颜色和外观)可能是因为它不是 ttk 的一部分。顺便说一下,我的滚动文本小部件包含在 ttk.Frame 小部件中。有什么解决方法吗?

4

1 回答 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 回答