我有一个按钮,其背景图像会根据从串行接收的数据包定期更改。当用户单击该按钮时,它会变为带边框的红色。
pb_Jack1Up ->setStyleSheet("QPushButton {border-image: url(:/ArrowKey/Up_Default.jpg); } QPushButton:focus {border-width: 1px;border-style: solid; border-radius: 4px;}");
现在,我想要的是给按钮一些效果,让用户明白按钮被点击了。比如点击时按钮进入内部,当用户释放按钮边框时,不再再设置按钮边框。但是,在我的情况下,按钮边框仍然存在。我不能用压缩和释放的插槽设置样式表,因为背景图像取决于我们从串行接收的内容。
有人可以帮我吗?
答案 0 :(得分:1)
您可以使用:
QPushButton { ... }
QPushButton:disabled { ... }
QPushButton:pressed { ... }
QPushButton:focus { ... }
QPushButton:hover { ... }
或查看this博客条目。
答案 1 :(得分:1)
释放鼠标后,按钮会保持焦点。这就是为什么它仍然有红色边框。 您可以检查是否激活了表单的另一个窗口小部件,单击或标签,红色边框消失。
尝试使用
QPushButton:pressed
而非焦点