我在设置border-image
的{{1}}属性时遇到问题(稍后也会QToolButton
,但我认为问题也会出现在那里)。我的每个自定义按钮(分别从QPushButton
和QToolButton
继承)必须有3种状态 - 无效,运行和错误。
无效:
QPushButton
运行:
style = 'border-top-right-radius: ' + str(self.cornerRadius) + 'px; border-bottom-right-radius: ' + str(self.cornerRadius) + 'px; border-top-left-radius: ' + str(self.cornerRadius) + 'px; border-bottom-left-radius: ' + str(self.cornerRadius) + 'px; border-image: url("' + self.icon + '"); background: none;'
错误:
style = 'border-top-right-radius: ' + str(self.cornerRadius) + 'px; border-bottom-right-radius: ' + str(self.cornerRadius) + 'px; border-top-left-radius: ' + str(self.cornerRadius) + 'px; border-bottom-left-radius: ' + str(self.cornerRadius) + 'px; border-image: url("' + self.icon + '"); background: rgb(89, 205, 139);'
其中style = 'border-top-right-radius: ' + str(self.cornerRadius) + 'px; border-bottom-right-radius: ' + str(self.cornerRadius) + 'px; border-top-left-radius: ' + str(self.cornerRadius) + 'px; border-bottom-left-radius: ' + str(self.cornerRadius) + 'px; border-image: url("' + self.icon + '"); background: rgb(215, 56, 56);'
是用于确定按钮圆度的数字,而self.cornerRadius
是我从某处检索过的图标。
我在按钮的构造函数(以及其他简单的初始化)中所做的只是
self.icon
按钮的self.setStyleSheet(style)
信号连接到同一类中的一个插槽,其中状态被更改(以及使用clicked()
的样式)关于系统的新内容状态是。
由于某些未知原因,我的工具提示会收到它所属的按钮的样式更改":
我已经仔细检查了Qt documentation,我认为没有理由可以解释这种行为。我根本不想改变工具提示的风格。任何想法如何解决这个问题?
答案 0 :(得分:2)
我将问题解释为:
如何避免重叠用于一种窗口小部件类型的样式 另一?
请注意:
样式表具有可以为类型明确设置的可见性。
myObj.setStyleSheet("QPushButton {border: 0.05em solid lightgray;}" )
只需用例如类型的样式表附上样式表即可QType { ... }
。
我只处理C ++ Qt,但认为PyQt使用相同的样式表系统。