在使用PyQt 4.7的python 2.7中,我开发了一个具有以下结构的复合小部件:
这是我申请的样式表:
InfoPanel {
border: 0px;
background-color: transparent;
}
InfoPanel[CssStyle=""] #OuterPanel {
background-color: blue;
border-style: solid;
border-color: green;
border-width: 40px 96px 10px 96px;
}
InfoPanel[CssStyle="HeaderSize"] #OuterPanel {
background-color: blue;
border-style: solid;
border-color: red;
border-width: 10px 96px 0px 96px;
}
InfoPanel[CssStyle=""] #Title {
color: #ffffff;
font-size: 24pt;
}
InfoPanel[CssStyle=""] #Description {
color: #ffffff;
font-size: 12pt;
}
InfoPanel[CssStyle="HeaderSize"] #Title {
color: #ffffff;
font-size: 12pt;
}
InfoPanel[CssStyle="HeaderSize"] #Description {
color: #ffffff;
font-size: 8pt;
}
这是InfoPanel小部件中的python方法,它显示自己设置自定义属性:
def showInfo(css_style='') {
self.setVisible(True)
self.setProperty('CssStyle', css_style)
self.style().unpolish(self)
self.style().polish(self)
self.update()
self.InnerPanel.style().unpolish(self.InnerPanel)
self.InnerPanel.style().polish(self.InnerPanel)
self.InnerPanel.update()
self.OuterPanel.style().unpolish(self.OuterPanel)
self.OuterPanel.style().polish(self.OuterPanel)
self.OuterPanel.update()
self.Title.style().unpolish(self.Title)
self.Title.style().polish(self.Title)
self.Title.update()
self.line.style().unpolish(self.line)
self.line.style().polish(self.line)
self.line.update()
self.Description.style().unpolish(self.Description)
self.Description.style().polish(self.Description)
self.Description.update()
}
如果我运行 showInfo(),我可以看到绿色边框,如果我运行 showInfo('HeaderSize')我可以看到红色边框;但无论如何,子窗口小部件忽略边框,我可以看到位于左上角边框上的标题窗口小部件!
这是一个错误还是我错了? 有人可以帮帮我吗?