Pyqt5 jak zrobić tak, aby pole wyboru zablokował dwa Qsliders razem [zamknięte]

0

Pytanie

Stworzyłem interfejs graficzny, za pomocą Qt Designer pracujący w pythonie tutaj

Jak mogę dodać kod w swój projekt, aby dodać znacznik wyboru, który blokuje (ich wartości zmieniają się wraz, jakimi by oni nie byli. zakres od 0 do 100) oba moich Qsliders razem. Patrz rysunek poniżej.

Proszę nie wahaj się zapytać, czy dodatkowe informacje.

New design

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

Najlepsza odpowiedź

1

Można by podłączyć każdy suwak valueChanged sygnał do innego setValue penetrować, gdy pole wyboru jest zaznaczone, i rozłączyć się, gdy pole wyboru jest wyczyszczone.

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

Dziękuję, jeszcze jedno pytanie, jak zrobić proporcjonalnego blokadę, jak w аудиомикшере? po zablokowaniu pozostają one na tych samych wartościach, co przed blokadą. Jak w suwaku, zestaw 50. slajd zestaw 10. W ten sposób, tak długo, aż wartość suwaka nie osiągnie 100 i 10, obaj będą równe 10 i pozostają zablokowane tak długo, dopóki nie zostanie powiedziane inaczej ?
Love-to-Make

@Love-to-Make nie rozumiem twojego przykładu. Jeśli chcesz, aby poruszały się proporcjonalnie, to będzie zależeć od stosunku ich wartości, w tym przypadku 5/1 lub 1/5.
alec

Nie wiem, jak inaczej to opisać. twój przykład działa normalnie .jeśli slider_A zainstalowana na 75, a slide_B-80, i wciskam przycisk blokady, chcę, aby była w tym stosunku, dopóki znowu nie dojdzie do linii, przesuwając każdy z suwaków. na przykład, kliknij i przeciągnij slide_A na 100. slide_B będzie poruszać się w górę i najpierw dojdzie do 100 i pozostanie tam, dopóki slide_A nie dotrze tam i odwrotnie
Love-to-Make

@Love-to-Make Dobrze i tak dla jasności, jeśli slider_A przeniesiony na 60, czy slider_B przejście na 64 (A * 80/75) lub 65 (A + 5)?
alec

Nie, suwaki można było bardzo łatwo ustawić w zupełnie innej ilości, na przykład na slajdzie A ustawić na 10, a na slajdzie B ustawić 50.
Love-to-Make

Lub przesuń A na 100 i przesuń B 25 po kliknięciu na jedną blokadę pozostają one takie same, jak u pavucontrol, z lewym i prawym równowagi na аудиоканалах
Love-to-Make

W innych językach

Ta strona jest w innych językach

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