Я программировал на Python только два дня. Я хочу отправить вывод кнопок через MQTT брокеру (и, конечно, подписчику). До сих пор я запрограммировал кнопки и хотел бы начать издательскую часть сейчас.
import tkinter as tk
from tkinter import ttk
from tkinter import Button
import paho.mqtt.client as mqtt
root = tk.Tk()
root.attributes('-fullscreen', True)
root.bind('<Escape>',lambda e: root.destroy())
a=0
def close_window():
root.destroy()
def callback():
print ("1")
a=1
def callback1():
print ("2")
a=2
def callback2():
print ("3")
a=3
s=ttk.Style()
s.configure('my.TButton', font=('Helvetica', '70'))
bx = ttk.Button(root, text = "x", style='my.TButton', command = close_window)
bx.pack(fill=tk.BOTH, anchor=tk.N, ipady=60)
c = Button(root, text="", height=15)
c.pack(fill=tk.BOTH, anchor=tk.N,)
b1 = ttk.Button(root, text="1", style='my.TButton', command=callback)
b1.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)
b2 = ttk.Button(root, text="2", style='my.TButton', command=callback1)
b2.pack(side=tk.LEFT, fill=tk.BOTH, expand=1)
b3 = ttk.Button(root, text="3", style='my.TButton', command=callback2)
b3.pack(side=tk.RIGHT, fill=tk.BOTH, expand=1)
broker_address="xxxx"
client1 = mqtt.Client("Publisher1")
client1.connect("xxxx")
client1.publish("Button/Number", a, qos=2)
root.mainloop()
Я хочу, чтобы переменная «а» менялась при каждом нажатии кнопки, а затем отправлялась 1 раз. Теперь я добавил базовый скрипт издателя, но получаю много разных сообщений об ошибках, таких как:
ConnectionRefusedError: [Errno 61] Соединение отказано (кстати, я хочу использовать свой ноутбук в качестве брокера, я взял локальный IP-адрес)
и
PermissionError: [Errno 13] В доступе отказано (та же история)
Я знаю, что часть Publisher не будет работать, но я не знаю, что мне не хватает или что мне нужно добавить.