Pyqt5 comment faire une case à cocher verrouiller les deux Qsliders ensemble [fermé]

0

La question

J'ai fait une interface graphique à l'aide de l'aide de Qt Designer cours d'exécution en python ici

Comment puis-je ajouter le code pour mon projet d'ajouter une case à cocher qui verrouille (leurs valeurs a changé tout ce qu'ils peuvent être. 0 à 100) à la fois mon Qsliders ensemble. Voir l'image ci-dessous.

N'hésitez pas à demander si plus d'informations sont nécessaires.

New design

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

La meilleure réponse

1

Que vous vous connectez chaque curseur est valueChanged signal à l'autre setValue logement lorsque la case est cochée, puis débranchez-lorsque cette option est décochée.

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

Merci encore une question, comment puis-je faire une proportionnelle de verrouillage comme dans un mélangeur audio? lorsqu'il est verrouillé ils restent dans les mêmes valeurs avant de les verrouiller. Comme dans le curseur d'Un ensemble de 50. diapositive B set 10. Donc, Jusqu'à ce qu'Un curseur valeur est de 100 et 10 alors ils seraient tous les deux 10 et de rester verrouillée jusqu'à ce que dit le contraire ?
Love-to-Make

@Love-pour-Faire-je ne comprends pas ton exemple. Si vous voulez les déplacer, proportionnellement, alors qu'il le serait par le ratio de leurs valeurs, dans ce cas, 5/1 ou 1/5.
alec

Je ne suis pas sûr comment le décrire. votre exemple fonctionne ok .si slider_A est fixé à 75 et slide_B est fixé à 80 et je clique sur le bouton de verrouillage de la je veux rester à ce rapport jusqu'à ce qu'ils s'alignent de nouveau par moi-même le déplacement des curseurs. par exemple, cliquez et faites glisser slide_A à 100. slide_B va avancer et arriver à 100 première et y rester jusqu'à slide_A arrive et vice-verca
Love-to-Make

@Love-pour-Faire Ok et juste pour être clair, si slider_A est déplacé à 60 devrait slider_B déplacer à 64 ans (A * 80 / 75) ou à 65 ans (A + 5)?
alec

Pas les curseurs pourrait très facilement être assis à un de complètement différent somme comme glisser Un ensemble de 10 et glissez B fixé à 50.
Love-to-Make

Ou faites glisser Un at100 et glissez B, à 25 ans, un verrou est cliqué ils restent comme pavucontrol ne wil balance gauche et droite sur les canaux audio
Love-to-Make

Dans d'autres langues

Cette page est dans d'autres langues

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