正在从配置文件中读取python ttk样式



使用python-ttk和ConfigParser会导致以下问题。

我想使用配置文件使样式在使用过程中适用于每个用户,而不仅仅是那些可以访问源的用户。

在我的python脚本(Python2.7)中使用ttk样式,就像一个魅力

def LoadStyles(self):
  s=ttk.Style()
  if not os.path.exists("Styles.cfg"):
     s.configure('TFrame', background='white')
     s.configure('Dark.TFrame', background='#292929')
  else:
     config=ConfigParser.RawConfigParser()
     config.read("Styles.cfg")
     for section in config.sections():
        for (key, val) in config.items(section):
           try:
              s.configure(section, key="%s"%val)
           except:
              print("Error Parsing Styles Config File:  [%s].%s = %s"%(section, key, val))

使用配置文件(以下内容)会导致所有帧的白色背景,也会导致像一样声明的帧

self.loginFrame=ttk.Frame(self, style='Dark.TFrame')

编辑:它们不是白色的,但未填充(默认填充)。

这两种方式都是在加载小部件之前完成的,可以是硬编码的,也可以是通过配置文件完成的。

我只是不明白我被困在这里的地方,手册和SO Search没有给我任何答案。。。

[TFrame]
background = "white"
[Dark.TFrame]
background = "#292929"

非常感谢您的帮助。

最后我得到了解决方案:

问题是"key"是作为关键字写入样式的。例如。{'key': '#292929'}可以使用读取该数据

print(s.configure(section))

之后

s.configure(section, key="%s"%val)

关键词开箱是线索:(非常感谢SO)

for section in config.sections():
    for (key, val) in config.items(section):
        try:
            test={ "%s" % key : "%s" % val }
            s.configure(section, **test)
        except:
            print("Error Parsing Styles Config File:")
            print("   [%s].%s = %s"%(section, key, val))

现在也可以使用从配置文件中读取的样式。

相关内容

  • 没有找到相关文章

最新更新