使用悬停和按下样式表 Qt
Posted
技术标签:
【中文标题】使用悬停和按下样式表 Qt【英文标题】:Using Hover and Pressed stylesheet Qt 【发布时间】:2013-10-10 06:21:55 【问题描述】:我在按钮 pushButton 样式表中使用了这个
QPushButton#pushButton
background-color: yellow;
QPushButton#pushButton:pressed
background-color: rgb(224, 0, 0);
QPushButton#pushButton:hover
background-color: rgb(224, 255, 0);
当我将鼠标悬停在它上面时,它会改变颜色,就像我期望的那样,但是即使我按下按钮,悬停颜色仍然存在。 我尝试更改顺序,但仍然是同样的问题。 Qt 中的小新。
【问题讨论】:
'pusButton'。哎呀! 【参考方案1】:你可以组合状态,例如:
QPushButton:hover:!pressed
border: 1px solid red;
QSS reference - states
【讨论】:
好的!工作正常。非常感谢我使用了这个 :: QPushButton#pushButton background-color:red QPushButton#pushButton:hover:!pressed background-color:green QPushButton#pushButton:hover background-color:yellow 这是对您问题的回答,但在一行中。如果你不明白,我会调整它;)。主要思想,您可以根据需要组合状态。我建议阅读qt文档,有很多有用的示例-doc.qt.digia.com/4.7/stylesheet-reference.html【参考方案2】:Css 和 Qt CSS 取决于声明的顺序。以后具有相同特性的声明将覆盖以前的声明。因此,为了让pressed
状态优先,只需将其移至hover
状态下方即可。
QPushButton#pushButton
background-color: yellow;
QPushButton#pushButton:hover
background-color: rgb(224, 255, 0);
QPushButton#pushButton:pressed
background-color: rgb(224, 0, 0);
【讨论】:
在 Windows 10 上,仅在您单击它后才在悬停时不起作用,这是否正常?【参考方案3】:可以在QPushButton中设置图片:
QPushButton#pushButton
background-url(Images/image1.png);
QPushButton#pushButton:pressed
background-url(Images/image2.png);
QPushButton#pushButton:hover
background-url(Images/image3.png);
【讨论】:
你为什么认为这个问题是关于背景图片的?以上是关于使用悬停和按下样式表 Qt的主要内容,如果未能解决你的问题,请参考以下文章