Skocz do zawartości

Pętla While w PyQt


dd10

Pomocna odpowiedź

Jak stworzyć pętle While True w PyQt, a mianowicie mam stworzone GUI w Qt Designer przekonwertowany przez pyuic5 do formaty .py tylko potrzebuję dodać pętlę która będzie cały czas działać w tle i załączać co jakiś czas przekaźnik na ustalony czas jednak gdy wstawie pętle to nie wyświetla się wtedy okno z GUI.

 

Link do komentarza
Share on other sites

Pętla nieskończona w programie z GUI (nie ważne w jakim środowisku i w jakim języku programowania) to nie jest dobry pomysł, delikatnie mówiąc. A bardziej precyzyjnie mówiąc - to nie ma szans zadziałać. Aplikacja z interfejsem graficznym jest pobudzana zdarzeniami, więc nie możesz pisać kodu tak, aby sterowanie "utknęło" wewnątrz pętli nieskończonej. Zainteresowałbym się tematem timerów w PyQt. Idea ogólna jest taka, że korzystając z odpowiedniego API ustawiasz timer, startujesz go, a potem otrzymujesz w aplikacji zdarzenie "czas upłynął" i reagujesz na nie. 

PS 1. Mam nadzieję, że dobrze zrozumiałem pytanie. 2. Nie jestem znawcą PyQt.

Link do komentarza
Share on other sites

@ReniferRudolf @ethanak

Ja zaczynam dopiero zabawę z PyQt i ogólnie z Pythonem i mam właśnie problem z kodem do czujnika przepływu zamieszczam go niżej jak przerobić go na wywołanie kliknięciem przycisku w interfejsie GUI żeby mierzył przepływ dopóki wciśnięty jest przycisk

import RPi.GPIO as GPIO
import time, sys
FLOW_SENSOR_GPIO = 12
GPIO.setmode(GPIO.BOARD)
GPIO.setup(FLOW_SENSOR_GPIO, GPIO.IN, pull_up_down = GPIO.PUD_UP)
global count
count = 0
def countPulse(channel):
   global count
   if start_counter == 1:
      count = count+1
GPIO.add_event_detect(FLOW_SENSOR_GPIO, GPIO.FALLING, callback=countPulse)

while True:
   
        start_counter = 1
        time.sleep(1)
        start_counter = 0
        flow = (count / 1535)
        print(" %.3f L" % (flow))
        time.sleep(0.5)

 

 

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.