我正在编写一个返回元组并使用类型注释的函数。为此,我写了:
def foo(bar) -> Tuple[int, int]:
pass
Run Code Online (Sandbox Code Playgroud)
这会运行,但我收到一条警告:
“元组”未定义 Pylance 报告UndefinedVariable
鉴于我正在编写许多返回元组类型的函数,我想摆脱警告。我假设我只需要导入Tuple引用的包,但是正确的 Python 包是什么?
根据我的研究,我倾向于认为这是软件包typing,但我不确定。
因此,在几小时后或阅读帖子并查看 tkinter 的文档后,我发现在 Windows 机器上,由于滚动条直接从 Windows 获取其主题,tkinter 滚动条的颜色选项将不起作用。我的问题是默认主题的颜色确实与我的程序冲突,我试图找到一个解决方案,它不涉及导入不同的 GUI 包,例如 PyQt(我在工作时无法访问 pip,所以这是一个问题获取新包)
除了使用单独的包之外,任何人都可以向我指出一些有关如何编写自己的侧边栏以滚动文本小部件的文档。到目前为止,我所发现的甚至接近我想要做的就是对这个问题的答案。(使用 ttk 样式更改 tkinter 中滚动条的外观)
从我可以看到的例子只是改变了滚动条的背景,因此我仍然无法使用这个例子。我在用于配置样式的行之一上出错。
style.configure("My.Horizontal.TScrollbar", *style.configure("Horizontal.TScrollbar"))
TypeError: configure() argument after * must be an iterable, not NoneType
Run Code Online (Sandbox Code Playgroud)
不知道如何处理这个错误,因为我只是在关注用户的例子,我不确定为什么它对他们有用而不对我有用。
到目前为止我尝试过的是:
我如何创建我的文本框和滚动条。
root.text = Text(root, undo = True)
root.text.grid(row = 0, column = 1, columnspan = 1, rowspan = 1, padx =(5,5), pady =(5,5), sticky = W+E+N+S)
root.text.config(bg = pyFrameColor, fg = "white", font=('times', 16))
root.text.config(wrap=NONE)
vScrollBar = tkinter.Scrollbar(root, command=root.text.yview)
hScrollBar = tkinter.Scrollbar(root, orient = HORIZONTAL, …Run Code Online (Sandbox Code Playgroud) 我一直在我的项目中使用 tkinter 滚动条。但是,当我使用属性 troughcolor 时,滚动条的颜色不会改变。所以,我想为 tkinter 和 python 制作一个自定义滚动条,可用于滚动框架。然后我将为这个自定义滚动条添加颜色。有什么办法可以做到吗?这是我的代码:
root=Tk()
container = ttk.Frame(root)
canvas = Canvas(container, highlightbackground="black", highlightthickness=1, bg="black", width=400, height=600)
scrollbar = Scrollbar(container, orient="vertical", command=canvas.yview, troughcolor="red")
scrollable_frame = ttk.Frame(canvas)
scrollable_frame.bind(
"<Configure>",
lambda e: canvas.configure(
scrollregion=canvas.bbox("all")
)
)
canvas.create_window((0, 0), window=scrollable_frame, anchor="nw")
canvas.configure(yscrollcommand=scrollbar.set)
container.pack()
canvas.pack(side="left", fill="both", expand=True)
scrollbar.pack(side="right", fill="y")
root.mainloop()
Run Code Online (Sandbox Code Playgroud) 我ScrolledText在 Tkinter GUI 中使用该模块。
我希望更改小部件中Scrollbar包含的颜色ScrolledText,但我遇到了一些困难。
我的语法是正确的(根据文档)。
Box = ScrolledText(root)
Box.vbar.config(troughcolor = 'red', bg = 'blue')
Box.pack()
Run Code Online (Sandbox Code Playgroud)
但是,滚动条仍然具有标准的灰色。
我知道语法是正确的,因为做其他事情,例如:
Box.vbar.config(cursor = 'target')
Run Code Online (Sandbox Code Playgroud)
...完全按照它应该的方式工作。
但是,尝试更改relief,borderwidth或 颜色似乎没有任何效果。
为什么会这样?
眼镜:
Python 2.7.1
Tkinter
Windows 7
空闲