[英]Reading python ttk Styles from configuration file
使用python ttk和ConfigParser會導致以下問題。
我想使用配置文件使樣式在使用期間適合每個用戶-不僅限於有權訪問源的樣式。
在我的python腳本(Python 2.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': '#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))
現在,也可以使用從配置文件讀取的樣式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.