En este artículo, veremos cómo podemos conectar dos cuadros giratorios entre sí de modo que cada cambio de valor de tiempo en un cuadro giratorio también se refleje en el otro cuadro giratorio, por ejemplo, cuando hayamos fijado la relación ancho-alto de la imagen y permitamos el usuario puede establecer el ancho y la altura usando el cuadro de número, ya que la proporción es fija, por lo tanto, el cambio en cualquier dimensión también debería reflejarse en la otra dimensión.
Ejemplo:
dos casillas giratorias conectadas entre sí de modo que el valor debe permanecer igual para cada cambio de valor que ocurra en cualquiera de las casillas giratorias.
Pasos para la implementación:
1. Cree dos cuadros de giro
2. Agregue geometría a ambos cuadros de giro
3. Agregue acción a cada cuadro de giro usando la señal valueChanged
4. Dentro de la primera acción del cuadro de giro, obtenga el valor actual del cuadro de giro y establezca este valor en el segundo cuadro de giro
5. Dentro de la acción del segundo cuadro de número, obtenga el valor actual del cuadro de número y establezca ese valor en el primer cuadro de número
A continuación se muestra la implementación.
# importing libraries from PyQt5.QtWidgets import * from PyQt5 import QtCore, QtGui 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 spin box self.spin1 = QSpinBox(self) # setting geometry to spin box self.spin1.setGeometry(100, 100, 150, 40) # setting prefix to spin self.spin1.setPrefix("Width : ") # add action to this spin box self.spin1.valueChanged.connect(self.action_spin1) # creating another spin box self.spin2 = QSpinBox(self) # setting geometry to spin box self.spin2.setGeometry(300, 100, 150, 40) # setting prefix to spin box self.spin2.setPrefix("Height : ") # add action to this spin box self.spin2.valueChanged.connect(self.action_spin2) # method called after editing finished def action_spin1(self): # getting current value of spin box current = self.spin1.value() # setting this value to second spin box self.spin2.setValue(current) # method called after editing finished def action_spin2(self): # getting current value of spin box current = self.spin2.value() # setting this value to the first spin box self.spin1.setValue(current) # create pyqt5 app App = QApplication(sys.argv) # create the instance of our Window window = Window() # start the app sys.exit(App.exec())
Producció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