Pyqt5-spor

Pyqt5-spor h1>

Fa via App Store Les dette innlegget i var app!

PyQt5 ett signal og flere spor.

Jeg har kommet opp med en enkel signal / spor mekanisme nedenfor. Signalet kalles av QSlider nar verdien endres via QSlider :: valueChanged (). Og sporet kalles via QLCDNumber :: display () -metoden.

Hva er forvirrende for meg, er hvorfor PyQt5 har sa lite dokumentasjon og de fleste dokumentasjonene forer til koblinger til Qt5. Det spesifikke problemet jeg har med koden er:

1) Hvis QSlider :: valueChanged () (signal) forventer et heltall som parameter, hvorfor sender vi bare inn QLCDNumber :: display () (slot) som er en tom funksjon. Derfor kommer ingenting til a bli sendt inn.

2) I kommentert kode nedenfor kan jeg ikke ringe til et andre spor. Er det en grense for antall spor du kan ringe for 1 signal? Hvis det er hvordan gar jeg om a ringe flere spor i PyQt5.

Rediger: Jeg tror fordi printLabel () ikke er et definert spor, derfor far jeg problemer. Er det mulig for meg a inkludere et hvilket som helst antall spor i :: connect () parametrene? Eller n rmer jeg meg dette pa en hacky mate.

Ta poengene dine i rekkefolge:

Qt5-dokumentasjonen inneholder minst 90% av det du trenger a vite, sa det er lite poeng i a gjenta alt i PyQt5-dokumentasjonen, som i stedet hovedsakelig konsentrerer seg om funksjonene som er spesifikke for PyQt (se Signals and Slots-artikkelen, for eksempel ). Qt5 er et C ++-bibliotek. Du trenger ikke a kjenne C ++ for a kunne bruke PyQt (eller a lese Qts utmerkede dokumentasjon), men du kan nesten ikke forvente a unnga det helt.

QSlider.valueChanged-signalet sender en int-verdi til alle sporene som er koblet til den. QLCDNUmber.display-sporet mottar enten en streng-, int- eller float-objekt (dvs. den har tre overbelastninger). For innebygde Qt-spor ma det v re en overbelastning som samsvarer med signalet sender. Men brukerdefinerte spor i PyQt kan v re et hvilket som helst python-kallbart objekt, og det spiller ingen rolle om signaturen ikke stemmer overens (noen ekstra parametere vil bli kastet bort). Nar det er sagt, kan en eksplisitt signatur defineres for en brukerdefinert spor ved a bruke pyqtSlot-dekoratoren (som derfor tillater at flere overbelastninger blir spesifisert i PyQt).

Som forklart i den forste delen av PyQt-artikkelen nevnt ovenfor, kan begge signaler og sporene ha flere tilkoblinger. Artikkelen beskriver ogsa PyQt-spesifikke APIer (inkludert pyqtSlot), og gir eksempler pa hvordan de skal brukes.

Slik kobler du til flere spor: Eksempel: