Pyqt5 come fare una casella di controllo blocca due Qsliders insieme [chiuso]

0

Domanda

Ho fatto una GUI usando Qt Designer in esecuzione in python qui

Come faccio ad aggiungere il codice per il mio progetto per aggiungere una casella di controllo che blocca (sono loro i valori sono cambiati insieme, qualunque essi siano. 0 - 100) il mio Qsliders insieme. Vedere l'immagine qui sotto.

Si prega di non esitate a chiedere se ulteriori informazioni è necessario.

New design

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

Migliore risposta

1

Vuoi collegare ogni dispositivo di scorrimento del valueChanged segnale agli altri setValue slot quando la casella di controllo è selezionata, e scollegare quando non è selezionata.

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

Grazie ancora una domanda come faccio a renderlo un proporzionale blocco come in un mixer audio? quando è bloccato hanno soggiornato presso gli stessi valori di prima della serratura. Come in dispositivo di scorrimento di Un set di 50. diapositiva B set di 10. Quindi, dispositivo di scorrimento Fino a Un valore di arriva a 100 e 10 quindi entrambi sarebbero 10 e rimarrà bloccato fino a quando ha detto il contrario ?
Love-to-Make

@Amore-per-Fare non capisco il tuo esempio. Se si desidera spostare in proporzione quindi sarebbe il rapporto tra i loro valori, in questo caso 5/1 o 1/5.
alec

Io non sono di sicuro di come altro descriverlo. il tuo esempio funziona ok .se slider_A è impostato a 75 e slide_B è impostato a 80 e fare clic con il pulsante di blocco voglio che rimanga in quel rapporto, fino a che la linea di nuovo da me spostare i dispositivi di scorrimento. ad esempio, fare clic e trascinare slide_A a 100. slide_B si muove su e arrivare a 100 prima e rimanere lì fino a quando non slide_A arriva e vice-verca
Love-to-Make

@Amore-per-Fare Ok e giusto per essere chiari, se slider_A è spostato a 60 dovrebbe slider_B passaggio ai 64 (A * 80 / 75) o 65 anni (+5)?
alec

No i cursori potrebbe molto facilmente essere seduto in una completamente diversa quantità come far scorrere Un set di 10 e diapositiva B impostato a 50.
Love-to-Make

O far scorrere Un at100 e far scorrere B a 25 un blocco è scattato rimangono come pavucontrol fa wil di destra e di sinistra in equilibrio sui canali audio
Love-to-Make

In altre lingue

Questa pagina è in altre lingue

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