pyqt5 QPushButton 更换图片 图片闪动
时间: 2023-10-09 20:04:40 浏览: 100
pyqt5实现按钮添加背景图片以及背景图片的切换方法
5星 · 资源好评率100%
在更换 QPushButton 的图片时,如果图片大小和按钮大小不一致,会导致图片闪动。为了解决这个问题,你可以在更换图片前先将按钮的大小设置为图片的大小,然后再将图片设置为按钮的背景。
示例代码如下:
```python
from PyQt5.QtGui import QPixmap
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
class Example(QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
self.setGeometry(300, 300, 300, 200)
self.setWindowTitle('QPushButton Change Image')
# 创建按钮
self.btn = QPushButton(self)
self.btn.setGeometry(50, 50, 100, 100)
# 设置按钮的背景
pixmap = QPixmap('image1.png')
self.btn.setFixedSize(pixmap.size()) # 设置按钮大小为图片大小
self.btn.setIcon(pixmap)
self.btn.setIconSize(pixmap.size())
# 更换图片
self.btn.clicked.connect(lambda: self.changeImage())
def changeImage(self):
pixmap = QPixmap('image2.png')
self.btn.setFixedSize(pixmap.size()) # 设置按钮大小为图片大小
self.btn.setIcon(pixmap)
self.btn.setIconSize(pixmap.size())
if __name__ == '__main__':
app = QApplication([])
ex = Example()
ex.show()
app.exec_()
```
在这个例子中,我们先将按钮的大小设置为图片1的大小,然后将图片1设置为按钮的背景。当按钮被点击时,我们再将按钮的大小设置为图片2的大小,然后将图片2设置为按钮的背景。这样就能避免图片闪动的问题。
阅读全文