Cuando configuramos la imagen en un botón, vemos que si el tamaño del botón es más pequeño que la imagen, la imagen se recortará. En este artículo veremos cómo podemos conservar el tamaño real de la imagen.
Hay dos maneras de hacer esto :
-> Cambie el tamaño del botón pulsador de acuerdo con el tamaño de la imagen.
-> En lugar de usar una imagen de fondo, use una imagen como máscara.Nota: En primer lugar, el tamaño del botón pulsador puede cambiarse o no. Depende del tamaño de la imagen y, en segundo lugar, no se producirá ningún cambio en el tamaño del botón pulsador.
Método #1: Cambiar el tamaño del botón.
Código:
# importing libraries from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * import sys class Window(QMainWindow): def __init__(self): super().__init__() # setting title self.setWindowTitle("Python ") # setting geometry self.setGeometry(100, 100, 1000, 800) # calling method self.UiComponents() # showing all the widgets self.show() # method for widgets def UiComponents(self): # creating a push button button = QPushButton("CLICK", self) # setting geometry of button button.setGeometry(10, 15, 100, 40) # adding action to a button button.clicked.connect(self.clickme) # setting background image button.setStyleSheet("background-image : url(image.png);") # resizing button according to size of image button.resize(724, 430) # action method def clickme(self): # printing pressed print("pressed") # create pyqt5 app App = QApplication(sys.argv) # create the instance of our Window window = Window() # start the app sys.exit(App.exec())
Salida:
Nota: este método no es preferible si el tamaño de la imagen es demasiado grande.
Método #2: Configuración de la imagen como una máscara.
Código:
# importing libraries from PyQt5.QtWidgets import * from PyQt5.QtGui import * from PyQt5.QtCore import * import sys class Window(QMainWindow): def __init__(self): super().__init__() # setting title self.setWindowTitle("Python ") # setting geometry self.setGeometry(100, 100, 600, 400) # calling method self.UiComponents() # showing all the widgets self.show() # method for widgets def UiComponents(self): # creating a push button button = QPushButton("CLICK", self) # setting geometry of button button.setGeometry(100, 150, 100, 40) # adding action to a button button.clicked.connect(self.clickme) # setting image as skin button.setStyleSheet("border-image : url(image.png);") # action method def clickme(self): # printing pressed print("pressed") # create pyqt5 app App = QApplication(sys.argv) # create the instance of our Window window = Window() # start the app sys.exit(App.exec())
Salida:
Nota: este método no es preferible si la forma de la imagen no es como la del botón.
Publicación traducida automáticamente
Artículo escrito por rakshitarora y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA