tkinter 및 paho-mqtt-client에 대한 무한 루프를 배치하는 방법은 무엇입니까?

Ton Machielsen

이것은 내 코드입니다

import paho.mqtt.client as mqtt
import json
from tkinter import *
from tkmacosx import *

class App:
    def __init__(self, master):

        frame = Frame(master)
        frame.pack()

        self.button = Button(frame, text="QUIT", fg="red", command=frame.quit)
        self.button.pack(side=LEFT)

        self.hi_there = Button(frame, text="Hello", command=self.say_hi)
        self.hi_there.pack(side=LEFT)

    def say_hi(self):
        print("hi there, everyone!")

def on_connect(client, userdata, flags, rc):
    print("Connected with result code "+str(rc))
    client.subscribe("$SYS/broker/clients/connected")

def on_message(client, userdata, msg):
    data = json.loads(msg.payload)
    print(data)

root = Tk()

client = mqtt.Client()
app = App(root)
root.mainloop()

client.on_connect = on_connect
client.on_message = on_message

client.connect("test.mosquitto.org", 1883, 60)
client.loop_forever()

지금 무슨 일을하는지 너무 걱정하지 마세요. 내가 이해해야 할 것은 무한 루프의 개념입니다.

화면에 tkinter 창을 유지하려면 무한 루프가 필요합니다. 또한 MQTT 클라이언트 연결을 유지하려면 무한 루프가 필요합니다.

내 코드에서 이러한 무한 루프를 어떻게 배치합니까? client.loopforever () 앞에 root.mainloop ()를 배치하면 tkinter 창을 닫을 때만 MQTT 코드를 얻을 수 있습니다. client.loopforever () 뒤에 root.mainloop ()를 배치하면 MQTT 연결을 닫을 때 tkinter 창이 나타납니다.

아이디어는 브로커로부터 메시지를 가져 와서 tkinter 창에 표시하는 것입니다. 이 두 무한 루프의 위치를 ​​이해하도록 도와주세요.

Eyllanesc

이벤트 루프가 이미 존재하는 경우 loop_forever()사용해서는 안되지만 다음과 loop_start()같습니다.

# ...
root = Tk()

client = mqtt.Client()

client.on_connect = on_connect
client.on_message = on_message

client.connect("test.mosquitto.org", 1883, 60)
client.loop_start()

app = App(root)
root.mainloop()

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

tkinter 프레임에서 상수 루프를 실행하는 가장 간단한 방법은 무엇입니까?

분류에서Dev

tkinter에서 루프에 대한 항목 위젯의 값을 저장하는 방법은 무엇입니까?

분류에서Dev

Javascript에 대한 루프를 중지하는 방법은 무엇입니까?

분류에서Dev

tkinter 및 셸 스크립트를 한 번에 여는 방법은 무엇입니까?

분류에서Dev

Tkinter를 사용하여 특정 입력에 대한 경고를 반환하는 방법은 무엇입니까?

분류에서Dev

480 * 800 및 480 * 856 장치에 대한 미디어 쿼리를 작성하는 방법은 무엇입니까?

분류에서Dev

Tkinter에서 Listbox를 3 열로 제한하는 방법은 무엇입니까?

분류에서Dev

루프에 대한 배치 파일의 카운터-같은 위치에 번호를 유지하는 방법은 무엇입니까?

분류에서Dev

Asynctask를 무한 루프하는 방법은 무엇입니까?

분류에서Dev

paho-mqtt에서 여러 주제를 구독하고 게시하는 가장 좋은 방법은 무엇입니까?

분류에서Dev

무한 루프를 만들지 않고 for 루프에서 insert ()를 사용하는 방법은 무엇입니까?

분류에서Dev

Java에서 while 루프를 제한하는 방법은 무엇입니까?

분류에서Dev

nginx를 사용하여 루트 및 프록시에 대한 정적 HTML을 제공하는 방법은 무엇입니까?

분류에서Dev

한 곳에 두 개의 Seeksbar를 배치하는 방법은 무엇입니까?

분류에서Dev

Eclipse Paho MQTT C 클라이언트 용 정적 라이브러리를 얻는 방법은 무엇입니까?

분류에서Dev

루트에 대한 프롬프트를 사용자 정의하는 방법은 무엇입니까?

분류에서Dev

FullCalendar에서 배열 및 루프를 만드는 방법은 무엇입니까?

분류에서Dev

Bluetooth getInputStream 및 getOutputStream에 대한 pyjnius 읽기 및 쓰기 인수를 사용하는 방법은 무엇입니까?

분류에서Dev

이러한 회귀에 대한 루프를 만드는 방법은 무엇입니까?

분류에서Dev

쉼표로 구분 된 정수 목록을 지정하고 각 정수에 대한 배치 스크립트 루프를 갖는 방법은 무엇입니까?

분류에서Dev

한 번에 두 변수에 대해 foreach 루프를 사용하는 방법은 무엇입니까?

분류에서Dev

파이썬에서 각 while 루프에 대한 결과를 저장하는 방법은 무엇입니까?

분류에서Dev

장치에 대한 푸시를 쿼리하는 방법은 무엇입니까?

분류에서Dev

희소 행렬에 대한 루프를 피하는 방법은 무엇입니까?

분류에서Dev

while 루프에 대한 Python unittest를 수행하는 방법은 무엇입니까?

분류에서Dev

이에 대한 Xpath를 찾는 방법은 무엇입니까?

분류에서Dev

루프에서 mutate 및 ifelse를 사용하는 방법은 무엇입니까?

분류에서Dev

동시에 bigtable 테이블에 대한 maxage 및 maxversions를 설정하는 방법은 무엇입니까?

분류에서Dev

간단한 C ++ 함수에서 무한 루프를 수정하는 방법은 무엇입니까?

Related 관련 기사

  1. 1

    tkinter 프레임에서 상수 루프를 실행하는 가장 간단한 방법은 무엇입니까?

  2. 2

    tkinter에서 루프에 대한 항목 위젯의 값을 저장하는 방법은 무엇입니까?

  3. 3

    Javascript에 대한 루프를 중지하는 방법은 무엇입니까?

  4. 4

    tkinter 및 셸 스크립트를 한 번에 여는 방법은 무엇입니까?

  5. 5

    Tkinter를 사용하여 특정 입력에 대한 경고를 반환하는 방법은 무엇입니까?

  6. 6

    480 * 800 및 480 * 856 장치에 대한 미디어 쿼리를 작성하는 방법은 무엇입니까?

  7. 7

    Tkinter에서 Listbox를 3 열로 제한하는 방법은 무엇입니까?

  8. 8

    루프에 대한 배치 파일의 카운터-같은 위치에 번호를 유지하는 방법은 무엇입니까?

  9. 9

    Asynctask를 무한 루프하는 방법은 무엇입니까?

  10. 10

    paho-mqtt에서 여러 주제를 구독하고 게시하는 가장 좋은 방법은 무엇입니까?

  11. 11

    무한 루프를 만들지 않고 for 루프에서 insert ()를 사용하는 방법은 무엇입니까?

  12. 12

    Java에서 while 루프를 제한하는 방법은 무엇입니까?

  13. 13

    nginx를 사용하여 루트 및 프록시에 대한 정적 HTML을 제공하는 방법은 무엇입니까?

  14. 14

    한 곳에 두 개의 Seeksbar를 배치하는 방법은 무엇입니까?

  15. 15

    Eclipse Paho MQTT C 클라이언트 용 정적 라이브러리를 얻는 방법은 무엇입니까?

  16. 16

    루트에 대한 프롬프트를 사용자 정의하는 방법은 무엇입니까?

  17. 17

    FullCalendar에서 배열 및 루프를 만드는 방법은 무엇입니까?

  18. 18

    Bluetooth getInputStream 및 getOutputStream에 대한 pyjnius 읽기 및 쓰기 인수를 사용하는 방법은 무엇입니까?

  19. 19

    이러한 회귀에 대한 루프를 만드는 방법은 무엇입니까?

  20. 20

    쉼표로 구분 된 정수 목록을 지정하고 각 정수에 대한 배치 스크립트 루프를 갖는 방법은 무엇입니까?

  21. 21

    한 번에 두 변수에 대해 foreach 루프를 사용하는 방법은 무엇입니까?

  22. 22

    파이썬에서 각 while 루프에 대한 결과를 저장하는 방법은 무엇입니까?

  23. 23

    장치에 대한 푸시를 쿼리하는 방법은 무엇입니까?

  24. 24

    희소 행렬에 대한 루프를 피하는 방법은 무엇입니까?

  25. 25

    while 루프에 대한 Python unittest를 수행하는 방법은 무엇입니까?

  26. 26

    이에 대한 Xpath를 찾는 방법은 무엇입니까?

  27. 27

    루프에서 mutate 및 ifelse를 사용하는 방법은 무엇입니까?

  28. 28

    동시에 bigtable 테이블에 대한 maxage 및 maxversions를 설정하는 방법은 무엇입니까?

  29. 29

    간단한 C ++ 함수에서 무한 루프를 수정하는 방법은 무엇입니까?

뜨겁다태그

보관