Pyqt5 cómo hacer una casilla de bloqueo de dos Qsliders juntos [cerrado]

0

Pregunta

He hecho una interfaz gráfica de usuario mediante el uso de Qt Designer ejecutando en python aquí

¿Cómo puedo agregar código a mi proyecto para agregar una casilla de verificación que bloquea (cambiar los valores de juntos lo que pueden ser. 0 - 100), tanto en mi Qsliders juntos. Ver imagen de abajo.

Por favor, siéntase libre de preguntar si hay más información es necesaria.

New design

pyqt5
2021-11-23 21:45:45
1

Mejor respuesta

1

Usted podría conectar cada deslizador valueChanged la señal para el otro setValue ranura cuando la casilla de verificación está marcada, y desconecte cuando no está activada.

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtCore import *

class Template(QWidget):

    def __init__(self):
        super().__init__()
        vbox = QVBoxLayout(self)
        vbox.addWidget(QSlider(Qt.Horizontal))
        vbox.addWidget(QCheckBox('Lock', toggled=self.toggleLocked))
        vbox.addWidget(QSlider(Qt.Horizontal))

    def toggleLocked(self, state):
        s1, s2 = self.findChildren(QSlider)
        if state:
            s2.setValue(s1.value())
            s1.valueChanged[int].connect(s2.setValue)
            s2.valueChanged[int].connect(s1.setValue)
        else:
            s1.valueChanged[int].disconnect()
            s2.valueChanged[int].disconnect()        
        

if __name__ == '__main__':
    app = QApplication(sys.argv)
    window = Template()
    window.show()
    sys.exit(app.exec_())
2021-11-25 02:45:39

Gracias una pregunta más ¿cómo puedo hacer un proporcional de bloqueo como en un mezclador de audio? cuando se bloquea su estancia en los mismos valores de antes del bloqueo. Como en el control deslizante de Un conjunto de 50. diapositiva B 10. Así Hasta que el deslizador de Un valor se pone a 100 y 10 entonces ellos serían 10 y quedarse bloqueado hasta que se le indique lo contrario ?
Love-to-Make

@Amor-para-Hacer no entiendo tu ejemplo. Si usted quiere que ellos se mueven proporcionalmente sería, entonces, el cociente de sus valores, en este caso 5/1 o 1/5.
alec

No estoy seguro de qué otra manera de describirlo. tu ejemplo funciona ok .si slider_A es de 75 y slide_B se establece en 80 y haga clic en el botón de bloqueo de la quiero a permanecer en esa relación hasta que la línea de nuevo por mí mover cualquiera de los controles deslizantes. por ejemplo haga clic y arrastre slide_A a 100. slide_B se moverá hacia arriba y llegar a los 100 primeros y quedarse ahí hasta que slide_A llega allí y vice-verca
Love-to-Make

@Amor-para-Hacer Aceptar y sólo para ser claros, si slider_A se mueve a 60 debe slider_B mover a 64 (A * 80 / 75) o a los 65 años (+ 5)?
alec

No los deslizadores podría muy fácilmente ser sentado en una completamente diferente cantidad como de la diapositiva de Un conjunto de 10 y deslice B establece en 50.
Love-to-Make

O deslizar Un at100 y deslice B en 25 de un bloqueo que se hace clic en ellos la estancia como pavucontrol hace wil balance izquierdo y derecho en los canales de audio
Love-to-Make

En otros idiomas

Esta página está en otros idiomas

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Slovenský
..................................................................................................................