gpt4 book ai didi

python - Qt CSS 错误处理

转载 作者:行者123 更新时间:2023-11-30 23:46:24 25 4
gpt4 key购买 nike

我有一个应用程序,它根据用户输入编写自己的样式表。它通过用户选择更改各个小部件的背景颜色/图像。

每当我开始使用此功能时,一切都很完美。然而,最终事情会陷入停滞。即使样式表不断添加到应用程序并设置到应用程序上,也不会对窗口进行任何视觉更改。

由于生成 CSS 时涉及一些强字符串操作,我猜测 CSS 中存在一些错误,导致 Qt 无法解释所有这些错误。

我无法发现这个错误!我的 CSS 始终采用

格式
"#widget { 'correctly formatted properties';} #nextwidget..."

我知道一个事实(通过算法的限制和通过检查损坏的 CSS 文件),为每个小部件设置的属性在语法上是正确的。

我注意到这样做...

#widget {color: ;}

... 不会阻止 Qt 解释字符串的其余部分,但使用不存在的属性(例如: { goose: 2 } )会阻止 Qt 解释字符串的其余部分。

那么,Qt 会消除什么样的错误,以及什么会停止对文件其余部分的解释?我在 Qt 文档中找不到列表或任何类似内容。
(事实上​​,PyQt4 包中甚至没有任何样式表文档。)

就我的 CSS 而言,我应用...

 {color: x; background-image:, y, background-color: z }   

用户选择的每个小部件(x、y、z 是正确的替换)。
是否有任何不支持这些属性的可见小部件?
(这可能是我的问题的根源!)

<小时/>

我尝试将 SS 放入验证器中,这里有两个 CSS 片段导致了错误,我不知道为什么!

#centralwidget { color: #ffffff ;
background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #aaff00, stop: 1 #aac300)
}

还有...

#Display { background-image: url('+NewTextureFile+');
background-repeat: repeat-xy;
}

如果有人也能帮助解决这些问题,我将非常感激!
(很明显我一直在改进 CSS 的方法...)

编辑:@阿瓦里斯:

抱歉,这个损坏的 CSS 并不是最小的;不知道哪个部分坏了!

我怀疑这是因为我没有以“;”结束所有属性。

#tab{color: #000000 ;background-color: #ff0000    } #tab{color: #000000 ;background-image: url(E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE/Texture Files/Penguins.jpg);background-repeat: repeat-xy;    } #Amount_Unit{color: #000000 ;background-color: #aaff00   } #Conc_Unit2{color: #000000 ;background-color: #aaff00   } #pushButton{color: #000000 ;background-color: #aaff00   } #tab_2{color: #000000 ;background-image: url(E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE/Texture Files/Penguins.jpg);background-repeat: repeat-xy;  } #RMM_Output{color: #000000 ;background-color: #aaff00  } #Conc_Unit1{color: #000000 ;background-color: #aaff00  } #UnitText{color: #000000 ;;  } #Amount_Input{color: #000000 ;;  } #Concentration_Input{color: #000000 ;;  } #Amount_Output{color: #000000 ;;  } #Subshell_Element{color: #000000 ;background-color: #00aaff  } #Charge{color: #000000 ;background-color: #00aaff  } #Simple_Config{color: #000000 ;background-color: #00aaff  } #Actual_Config{color: #000000 ;background-color: #00aaff  } #Save_Simple_Button{color: #ffffff ;background-color: #aaff00  } #Save_Actual_Button{color: #ffffff ;background-color: #aaff00  } #pushButton_2{color: #ffffff ;background-color: #aaff00  } #centralwidget{color: #ffffff ;background-color: qlineargradient(x1: 0, y1: 0, x2: 0, y2: 1, stop: 0 #aaff00, stop: 1 #aac300)  } #pushButton_3{color: #000000 ;background-color: #ff0000  } #Calculate_Proportions_Button{color: #000000 ;background-color: #f80000  } #{color: #000000 ;background-image: url(E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE/Texture Files/Koala.jpg);background-repeat: repeat-xy;  } #tab_4{color: #000000 ;background-image: url(E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE/Texture Files/Koala.jpg);background-repeat: repeat-xy;  }  #LayoutContainer1{color: #000000 ;background-image: url(E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE/Texture Files/Koala.jpg);background-repeat: repeat-xy;  } #AmountInput{color: #ffaa00 ;background-color: #ffff00  } #tab_5{color: #000000 ;background-color: #ffffff  } #menubar{color: #000000 ;background-color: #ffffff  } #tabWidget{color: #000000 ;background-color: #ffffff  } #Reaction_Element_Holder{color: #000000 ;background-image: url(E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE/Texture Files/Penguins.jpg);background-repeat: repeat-xy; } 

感谢您的阅读!

<小时/>

PyQt4
python 2.7.2
Windows 7

最佳答案

查看示例 CSS,有一个没有名称的 ID 选择器:

#tab{color: #000000 ;background-color: #ff0000    } 
/* ... */
#{color: #000000 ;background-image: url(E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE/Texture Files/Koala.jpg);background-repeat: repeat-xy; } #
/* ... */
#Reaction_Element_Holder{color: #000000 ;background-image: url(E:/ChemCalc ULTIMATE/ChemCalc ULTIMATE/Texture Files/Penguins.jpg);background-repeat: repeat-xy; }

这引发了解析器并使 CSS 的其余部分在此之后无效。

顺便说一句,无名的 ID 选择器实际上是无效的 CSS。 W3C 验证器给出:

Parse Error  Lexical error at line 1, column 2. Encountered: "{" (123), after : "#"

对于:

#{ color: blue; }
body { color: red; }

但是我测试的浏览器(Opera、Firefox)足够聪明,可以忽略并继续。显然 Qt CSS 解析器对这种错误感到不舒服。

关于python - Qt CSS 错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9015953/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com