我在tkinter发现了一个异常现象。我在下面附上了我的剧本以显示异常。
运行此脚本,我在我的系统(Ubuntu 16.04.03)上发现ttk.Frame
的背景看起来很奇怪。如果我将鼠标指针移入和移出ttk.Frame
,背景外观可能会改变并出现乱码(例如,可能会出现来自其他背景窗口的背景,可能会出现奇怪的颜色模式,....)。
经过一些调查,我发现通过将background='light purple'
替换为background='white'
,异常消失,ttk.Frame
外观的行为与定义的一样。也就是说,故障是由使用tkinter无法识别的背景/颜色名引起的。
问题:
在Mac,Windows或其他Linux系统中是否会出现此异常?
tkinter接受的有效背景名称是什么?我不是
能够在tkinter的__init__.py
或ttk.py
中找到它。哪里可以
我找到了吗?
测试脚本:
#!/usr/bin/python3
# -*- coding: utf-8 -*-
import tkinter as tk
import tkinter.ttk as ttk
class App(ttk.Frame):
def __init__(self, parent=None, *args, **kwargs):
style=ttk.Style()
style.configure('App.TFrame', background='light purple')
ttk.Frame.__init__(self, parent, style='App.TFrame', borderwidth=10,
relief='raised', width=200, height=200)
self.parent = parent
self.parent.geometry('300x300')
if __name__ == '__main__':
root = tk.Tk()
app = App(root)
app.grid(row=0, column=0, sticky='nsew')
app.grid_propagate(0)
root.mainloop()
答案 0 :(得分:3)
在Win 10,3.7.0b1上,没有给出的背景为白色,识别的背景是什么,未知的背景('浅紫色'或'xyz')是黑色。至于识别的颜色名称:
NMT 8.5参考文献说“颜色'白色','黑色','红色','绿色','蓝色','青色','黄色'和'洋红色'将永远是其他名称可能有效,具体取决于您当地的安装。“。
tcl/tk 8.6文档列出了数百种颜色名称(但不是“淡紫色”!)以及一些特定于MacOS和Windows的颜色名称。