Pyqt5 como fazer uma caixa de seleção bloquear dois Qsliders juntos [fechado]

0

Pergunta

Eu fiz uma GUI usando o Qt Designer execução em python aqui

Como faço para adicionar o código para o meu projeto para adicionar uma caixa de verificação que bloqueia (ter seus valores alterados juntos o que quer que sejam. 0 - 100 da série), tanto no meu Qsliders juntos. Veja a imagem abaixo.

Por favor, sinta-se livre para perguntar se mais de informações é necessário.

New design

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

Melhor resposta

1

Você teria que ligar cada controle deslizante do valueChanged sinal para o outro setValue slot quando a caixa de seleção é marcada, e desligar quando não verificada.

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

Obrigado mais uma pergunta como faço para torná-lo um proporcional de bloqueio, como em um mixer de áudio? quando bloqueado, eles ficam em os mesmos valores de antes do bloqueio. Como controle deslizante em Um conjunto de 50. slide B 10. Então, Até que o controle deslizante de Um valor de 100 e 10, ambos seriam 10 e permanecer bloqueado até que o dito de outra maneira ?
Love-to-Make

@Amor-para-Fazer o que eu não entendo o seu exemplo. Se você deseja mover, proporcionalmente, do que o seria pela razão de seus valores, neste caso 5/1 ou 1/5.
alec

Eu não sou a certeza de que outra forma de descrevê-lo. seu exemplo funciona ok .se slider_A é 75 e slide_B é fixado em 80 eu e clique no botão de bloqueio, eu quero que ele fique em que proporção, até que a linha novamente por me mover qualquer um dos controles deslizantes. por exemplo, clique e arraste slide_A para 100. slide_B vai passar e chegar aos 100 primeiros e ficar lá até slide_A chega lá e vice-verca
Love-to-Make

@Amor-para-Fazer Ok e só para ficar claro, se slider_A é movido para 60 deve slider_B mover 64 (A * 80 / 75) ou 65 (A + 5)?
alec

Sem os controles deslizantes poderia muito facilmente ser sentou-se em um completamente diferente quantidade, como apresentação de Um conjunto de 10 e deslize B 50.
Love-to-Make

Ou apresentação de Um at100 e apresentação de B em 25 um bloqueio é clicado, eles ficam como pavucontrol não wil esquerda e para a direita equilíbrio nos canais de áudio
Love-to-Make

Em outros idiomas

Esta página está em outros idiomas

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