Pyqt5, jak vytvořit zaškrtávací políčko zamknout dvě Qsliders spolu [uzavřen]

0

Otázka

Jsem udělal GUI pomocí pomocí Qt Designer běží v pythonu zde

Jak mohu přidat kód do projektu přidat zaškrtávací políčko, které zámky (jejich hodnoty změnily dohromady, co se jim může být. 0 - 100 rozsah) oba moji Qsliders spolu. Viz obrázek níže.

Prosím, neváhejte se zeptat, jestli více info není potřeba.

New design

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

Nejlepší odpověď

1

Ty by se připojit každý jezdec je valueChanged signál pro ostatní je setValue slot pokud je políčko zaškrtnuté, a odpojte nezaškrtnuto.

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

Díky ještě jedna otázka, jak mám udělat, aby to proporcionální zámek jako v audio mixer? když zamčené zůstanou na stejné hodnoty před zámkem. Stejně jako v slider sada 50. snímek B 10. Takže Dokud posuvník hodnota dostane na 100 a 10, pak by oba 10 a zůstat uzamčeny, dokud řekl jinak ?
Love-to-Make

@Love-k-Make nechápu váš příklad. Pokud je chcete přesunout úměrně pak by to bylo tím, že poměr jejich hodnot, v tomto případě 5/1 nebo 1/5.
alec

Nejsem si jistá, jak jinak to popsat. váš příklad funguje v pořádku .pokud slider_A je stanovena na 75 a slide_B je stanovena na 80 a já jsem klepněte na tlačítko zamknout chci, aby to zůstat na tomto poměru, dokud se seřadí znovu mě pohybující se některý z jezdců. např klepněte na tlačítko a přetáhněte slide_A do 100. slide_B bude pohybovat nahoru a dostat se do 100 a zůstat tam, dokud slide_A se tam dostane a vice-verca
Love-to-Make

@Love-k-Dělat Dobře a jen aby bylo jasno, pokud slider_A je přesunuta do 60 by slider_B přesunout do 64 (* 80 / 75) nebo 65 (+5)?
alec

Žádné posuvníky může být velmi snadno seděl na úplně jinou částku, jako slide sada 10 a slide B nastavte na 50.
Love-to-Make

Nebo posuňte at100 a slide B na 25 jeden zámek klikli zůstat jako pavucontrol se wil levé a pravé rovnováhu na audio kanály
Love-to-Make

V jiných jazycích

Tato stránka je v jiných jazycích

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