Pyqt5 cum să facă o casetă de selectare blocare două Qsliders împreună [închis]

0

Problema

Am făcut un GUI folosind folosind Qt Designer de funcționare în python aici

Cum pot adăuga cod proiect pentru a adăuga o casetă de selectare care blochează (au valorile lor s-a schimbat împreună, oricare ar fi ele. 0 - 100 gama) ambele Qsliders împreună. Vezi poza de mai jos.

Vă rugăm să nu ezitați să întrebați dacă este nevoie de mai multe informatii.

New design

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

Cel mai bun răspuns

1

Te-ar conecta fiecare slider valueChanged semnal pentru alte e setValue slot atunci când caseta de selectare este bifată, și deconectați atunci când necontrolate.

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

Multumesc inca o intrebare cum pot face un proporțională blocare ca într-un mixer audio? atunci când blocat rămân la aceleași valori înainte de blocare. Ca și în slider Un set de 50 de ani. slide B set 10. Așa că, Până când cursorul O valoare ajunge la 100 și 10 atunci amândoi ar fi 10 și rămâne blocat până când a spus altfel ?
Love-to-Make

@Iubesc-pentru-a Face nu înțeleg de exemplu. Dacă doriți să le mutați, proporțional, atunci ar fi de raportul dintre valorile lor, în acest caz, 5/1 sau 1/5.
alec

Eu nu sunt sigur cum să-l descriu altfel. exemplul tau functioneaza ok .dacă slider_A este stabilit la 75 și slide_B este situat la 80 de ani și-faceți clic pe butonul blocare vreau să stau într-un raport până când linia de sus din nou de mine înainte de slidere. de exemplu, faceți clic și glisați slide_A la 100. slide_B se va muta în sus și ajunge la 100 de primul și stai acolo până slide_A ajunge acolo și vice-verca
Love-to-Make

@Love-a-Face Bine și ca să fie clar, dacă slider_A este mutat la 60 ar trebui să slider_B trece la 64 (O * 80 / 75) sau la 65 de ani (A + 5)?
alec

Nu cursoarele ar putea foarte ușor fi așezat la o sumă complet diferit, cum ar fi slide Un set de 10 și glisați B setați la 50 de ani.
Love-to-Make

Sau glisați Un at100 și glisați-B la 25 de blocare este apasat stau ca pavucontrol nu wil echilibru la stânga și dreapta pe canale audio
Love-to-Make

În alte limbi

Această pagină este în alte limbi

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