У меня есть следующий код, который меняет растровое изображение в метке через 3 секунды. Проблема заключается в том, что при изменении растрового изображения верхняя и нижняя часть нового изображения обрезаются, но они имеют тот же размер, что и предыдущий. Знаете ли вы, как этого избежать?
from PyQt5 import QtCore
from PyQt5 import QtGui
from PyQt5 import QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QDesktopWidget, QHBoxLayout
from PyQt5.QtGui import QImage, QPalette, QBrush, QTransform
from PyQt5.QtCore import QSize
import sys
from datetime import datetime
PictureEthernet = 'E:\\ethernet.png'
PictureWifi0 = 'E:\\wifi_no.png'
class TopBar(QtWidgets.QWidget):
def __init__(self):
super().__init__()
self.initUI()
def initUI(self):
# NETWORK PICTURE
self.labelNetwork = QtWidgets.QLabel()
self.pictureNetwork = QtGui.QPixmap(PictureEthernet)
self.pictureNetwork = self.pictureNetwork.scaled(20, 20, QtCore.Qt.IgnoreAspectRatio)
self.labelNetwork.setPixmap(self.pictureNetwork)
# BACKGROUND
background = QtWidgets.QWidget(self)
background.setStyleSheet("background-color: gray;")
background.setGeometry(0, 0, 480, 30)
# LAYOUT
hbox = QHBoxLayout(background)
hbox.addWidget(self.labelNetwork)
self.timer = QtCore.QTimer(self)
self.timer.setInterval(3000)
self.timer.timeout.connect(self.updateImage)
self.timer.start()
self.show()
def updateImage(self):
self.pictureNetwork = QtGui.QPixmap(PictureWifi0)
self.pictureNetwork = self.pictureNetwork.scaled(20, 20, QtCore.Qt.KeepAspectRatio)
self.labelNetwork.setPixmap(self.pictureNetwork)
if __name__=='__main__':
app = QApplication(sys.argv)
ex = TopBar()
sys.exit(app.exec_())
первое изображение
второе изображение
ethe rnet .png
wifi_no.png