QPushButton点击切换背景图用qss 文件演示
时间: 2024-05-06 17:18:38 浏览: 11
首先,我们需要准备两张图片,一张是按钮正常状态下的背景图,另一张是按钮被点击时的背景图。假设这两张图片分别为 `normal.png` 和 `clicked.png`。
接下来,我们需要创建一个 `QPushButton` 控件,并设置默认背景图为 `normal.png`。然后,在 `.qss` 文件中,定义按钮被点击时的背景图为 `clicked.png`。最后,将 `.qss` 文件应用到应用程序中即可。
以下是示例代码:
```python
import sys
from PyQt5.QtWidgets import QApplication, QPushButton
from PyQt5.QtGui import QPixmap
app = QApplication(sys.argv)
# 创建按钮控件
button = QPushButton()
button.setFixedSize(100, 50)
# 设置默认背景图
pixmap = QPixmap("normal.png")
button.setIcon(pixmap)
button.setIconSize(button.size())
# 定义 .qss 样式
qss_style = """
QPushButton {
border: none;
background-color: transparent;
}
QPushButton:hover {
background-color: rgba(0, 0, 0, 0.1);
}
QPushButton:pressed {
background-image: url("clicked.png");
background-repeat: no-repeat;
background-position: center;
}
"""
# 将 .qss 样式应用到应用程序中
app.setStyleSheet(qss_style)
# 显示按钮控件
button.show()
sys.exit(app.exec_())
```
注意,`.qss` 文件中使用的背景图路径需要相对于当前工作目录。如果你的图片不在当前工作目录下,需要修改路径。另外,`.qss` 样式中的 `background-color` 和 `background-image` 样式需要同时设置,否则在按钮被点击时,背景色会变成默认的灰色。