Compare commits

...

6 Commits

Author SHA1 Message Date
525c9b8165
instructions 2023-05-28 04:46:27 +03:00
8b622046a2
useless 2023-05-28 04:46:13 +03:00
be0f819b7e
swagger schema and mocks 2023-05-28 04:45:15 +03:00
2a11d17d80
comments shitposting 2023-05-28 04:44:52 +03:00
91d0191e3f
rewrote app 2023-05-28 04:44:33 +03:00
fcf23ab208
update .ui file 2023-05-28 04:43:39 +03:00
14 changed files with 899 additions and 757 deletions

300
Main.py
View File

@ -1,300 +0,0 @@
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5 import uic
from PyQt5.QtGui import QColor, QPalette
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import QTimer
from PyQt5.QtWidgets import *
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
import requests
import time
import json
import Res_rc
import copy
import pyqtgraph as pg
import sys
#import matplotlib.pyplot as plt
colors = {}
last_clicked_label = None
plotLen = 20
valArr = [20] * plotLen
plot = None
def led1 (checked):
if checked:
form.pushButton_2.setText("Выкл")
print("I'm worked too much")
form.label_24.hide()
form.label_20.show()
else:
form.label_20.hide()
form.label_24.show()
form.pushButton_2.setText("Вкл")
print ("I'm worked too")
def led2 (checked):
if checked:
form.pushButton_3.setText("Выкл")
print("I'm worked too much")
form.label_27.hide()
form.label_26.show()
else:
form.label_26.hide()
form.label_27.show()
form.pushButton_3.setText("Вкл")
print ("I'm worked too")
def led3 (checked):
if checked:
form.pushButton_4.setText("Выкл")
print("I'm worked too much")
form.label_31.hide()
form.label_29.show()
#state = form.label_24.isVisible()
else:
form.label_29.hide()
form.label_31.show()
form.pushButton_4.setText("Вкл")
print ("I'm worked too")
def updateLCD():
global temp
form.lcdNumber.display(temp)
def sed ():
print ("I'm worked!")
led_data = {
"leds1": {"red": 0, "green": 0, "blue": 0},
"leds2": {"red": 0, "green": 0, "blue": 0},
"leds3": {"red": 0, "green": 0, "blue": 0},
"leds4": {"red": 0, "green": 0, "blue": 0},
"leds5": {"red": 0, "green": 0, "blue": 0},
"leds6": {"red": 0, "green": 0, "blue": 0},
"leds7": {"red": 0, "green": 0, "blue": 0},
"leds8": {"red": 0, "green": 0, "blue": 0},
}
def vkl():
for led in form.leds:
#caution! Naming will be the same for a Led and JSON led objects
led.setStyleSheet(f"background-color: yellow;")
led_data[led.objectName()]["red"] = 255
led_data[led.objectName()]["green"] = 255
led_data[led.objectName()]["blue"] = 0
def vikl():
for led in form.leds:
#caution! Naming will be the same for a Led and JSON led objects
led.setStyleSheet(f"background-color: black;")
led_data[led.objectName()]["red"] = 0
led_data[led.objectName()]["green"] = 0
led_data[led.objectName()]["blue"] = 0
def color():
color = QColorDialog.getColor()
if color.isValid():
palette = QPalette()
palette.setColor(QPalette.Button, color)
form.color_b.setPalette(palette)
for led in form.leds:
led.setStyleSheet(f"background-color: {color.name()};")
led_data[led.objectName()]["red"] = color.red()
led_data[led.objectName()]["green"] = color.green()
led_data[led.objectName()]["blue"] = color.blue()
def led_clicked(event):
colors = led.palette().color(QPalette.Background)
sender= QApplication.widgetAt(event.globalPos()) #QApplication.widgetAt() для получения текущего виджета, на котором было совершено действие
color = QColorDialog.getColor()
if color.isValid():
#caution! Naming will be the same for a Led and JSON led objects
sender.setStyleSheet(f"background-color: {color.name()};")
led_data[sender.objectName()]["red"] = color.red()
led_data[sender.objectName()]["green"] = color.green()
led_data[sender.objectName()]["blue"] = color.blue()
else:
form.leds.setStyleSheet(" ")
def sendMessage():
url = form.lineEdit.text()
labels_dict = {}
labels_dict["LED1"] = form.label_20.isVisible()
labels_dict["LED2"] = form.label_26.isVisible()
labels_dict["LED3"] = form.label_29.isVisible()
json_data = {}
json_data.update(led_data)
json_data.update(labels_dict)
json_str = json.dumps(json_data, separators=(',', ':'))
data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str
form.textEdit.setPlainText(data_str)
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} #заголовки запроса
response = requests.post(url, json=json_data, headers=headers) #отправка POST запроса
# обрабатываем ответ и выводим его в поле вывода
if response.status_code == 200:
form.textEdit.append('О, все прошло успешно!\n') #выводим значение в line_edit
else:
form.textEdit.append('Ошибка при получении данных')
def getValueFromMacket():
url = form.lineEdit_2.text()
response = requests.get(url) #отправка POST запроса
# обрабатываем ответ и выводим его в поле вывода
if response.status_code == 200:
data=response.json() #функция преобразования данных в объект питон
#Parse the date
form.textEdit.append(json.dumps(data)) #выводим значение в line_edit
form.textEdit.append(str(data["temperature"]))
bs = list()
bs.append(data["button1State"])
bs.append(data["button2State"])
bs.append(data["button3State"])
update_button(bs)
update_pressure(data["pressure"])
form.lcdNumber_7.display(data["ambient_light"])
form.lcdNumber_2.display (data["red_light"])
form.lcdNumber_3.display (data["green_light"])
form.lcdNumber_4.display (data["blue_light"])
form.lcdNumber_8.display (data["lightness"])
form.lcdNumber_5.display(data['acceleration_x'])
form.lcdNumber_9.display (data['acceleration_y'])
form.lcdNumber_6.display (data['acceleration_z'])
led1(data['LED1'])
led2(data['LED2'])
led3(data['LED3'])
valArr.pop(0)
valArr.append(data["temperature"])
print(valArr)
UpdatePlot(plot, valArr)
else:
form.textEdit.append('Ошибка при получении данных')
#json.load(file) @ACHT! Method to convert Str to JSON
def update_pressure(p):
form.lcd_pressure.display(p)
def update_button (bs):
for i in range(1, 4):
button_state = bs[i-1]
if button_state == 'True':
getattr(form, f'on_{i}').show()
getattr(form, f'off_{i}').hide()
else:
getattr(form, f'on_{i}').hide()
getattr(form, f'off_{i}').show()
def UpdatePlot(plot, val):
x = list(range(1, len(valArr)+1))
bargraph = pg.BarGraphItem(x = x, height = val, width = 0.6, brush ='g')
plot.clear()
plot.addItem(bargraph)
def Plots(form, valArr):
widget = QWidget()
plot = pg.plot() #создает объект PlotWidget из библиотеки PyqtGraph
x = list(range(1, len(valArr)+1))
bargraph = pg.BarGraphItem(x = x, height = valArr, width = 0.6, brush ='g')
plot.addItem(bargraph)
# Creating a grid layout
layout = QGridLayout()
layout.addWidget(plot, 0,0)
form.plotwidget.setLayout(layout)
return plot
def main():
with open('./config.json') as f: # открывает файл 'config.json'
conf = json.load(open('config.json')) # загружает его содержимое в переменную 'conf' в формате словаря (dictionary) при помощи функции 'json.load()'
# выводит все ключи словаря 'conf' при помощи цикла 'for'.
print("Find an arguments:")
for i in conf:
print(i)
Form, Window = uic.loadUiType(conf['uiPath'] + conf['uiFileName'])
app = QApplication(sys.argv) # Создаем экземпляр QApplication и передаем параметры командной строки
window = Window()
form = Form()
form.setupUi(window)
window.show() # Окна скрыты по умолчанию!
window.setWindowTitle('Lr4') #nazvanie
form.pushButton.clicked.connect(sendMessage) #привязываем функцию к кнопке Отправить
form.lineEdit.setText("http://" + conf['defaultMDNSname'] + conf['defaultPostRoute'])
form.lineEdit_2.setText("http://" + conf['defaultMDNSname'] + conf['defaultGetRoute'])
form.pushButton_5.clicked.connect(getValueFromMacket) #привязываем функцию к кнопке Отправить GET запрос
form.pushButton_2.setCheckable(True) #вкл режим перекл
form.pushButton_2.setChecked(False) #нач значение
form.label_20.hide()
form.pushButton_2.toggled["bool"].connect(led1)
form.pushButton_3.setCheckable(True) #вкл режим перекл
form.pushButton_3.setChecked(False) #нач значение
form.label_26.hide()
form.pushButton_3.toggled["bool"].connect(led2)
form.pushButton_4.setCheckable(True) #вкл режим перекл
form.pushButton_4.setChecked(False) #нач значение
form.label_29.hide()
form.pushButton_4.toggled["bool"].connect(led3)
form.on_1.hide()
form.on_2.hide()
form.on_3.hide()
form.lcdNumber.display(45)
form.leds = [form.leds1, form.leds2, form.leds3, form.leds4, form.leds5, form.leds6, form.leds7, form.leds8]
for led in form.leds:
led.mousePressEvent = led_clicked
timer = QTimer()
timer.setInterval(1000)
#Connect the timer to the update_pressure function
#TODO connect to getSensValue from macket
# timer.timeout.connect(update_pressure)
# timer.timeout.connect(update_button)
# timer.timeout.connect(update_light)
# timer.timeout.connect(update_acceleration)
timer.start()
form.vkl_b.clicked.connect(vkl)
form.vikl_b.clicked.connect(vikl)
form.color_b.clicked.connect(color)
plot = Plots(form, valArr)
sys.exit (app.exec_()) # Запуск цикла событий
if __name__ == "__main__":
main()

View File

@ -397,7 +397,7 @@
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_sensor_print3&#10;">
<widget class="QLabel" name="label_sensor_print3">
<property name="geometry">
<rect>
<x>570</x>
@ -986,7 +986,7 @@
</rect>
</property>
</widget>
<widget class="QPushButton" name="pushButton_send_get_request">
<widget class="QPushButton" name="pushButton_send_get">
<property name="geometry">
<rect>
<x>1050</x>

Binary file not shown.

View File

@ -6,13 +6,42 @@
```
.
|- requirements.txt
|- config.json
|- main.py
|- display_updater.py # update_led, update_pressure, update_button, update_plot
|- network_manager.py # get_value_from_macket, send_colors
|- plot.py
|- PyQt_app.ui
|- requirements.txt
|- Res_rc.py
```
Инструкции для запуска проекта
```bash
pip install -r requirements.txt
python main.py
```
def update_led - led1, led2, led3
def send_colors - sendMessage
```
Тестовый сервер можно запустить через [Mockoon](https://mockoon.com/)
В нём нужно открыть файл `openapi_mock.json`
То, что нужно сделать помечено комментариями с `TODO:`
Помимо этого, необходимо переработать названия виджетов - начало заложено, но там ещё есть куда расти. В нынешнем виде код некорректно работает, так как есть отличия в названиях
Кроме того, Артём, мы забыли про функции vkl* и про обработчики для выбора цветов светодиодов. Их нужно переработать как методы того класса (надеюсь, разберёшься)
Также не забывем, что на самом деле мы должны оформить нашу программу как методички для набора лаб. Скорее всего их будет 2-3:
1. Работа с QT Designer
2. Взаимодействие с PyQT5 - просто описание того, как устанавливать и получать значения у элементов, как подписываться на события
3. (или вторая часть 2) Сетевое взаимодействие - то, как работает QTNetworkAccessManager и иже с ними
По ходу описания также стоит рассказать об неочевидных штуках, которые мы применили, вроде `getattr` или декораторов.
Для примера можно посмотреть на .doc'и на [gdrive](https://drive.google.com/drive/folders/1gwLePKsdFZigg063zDGkK1UWlHsGJBiA)
Если что-то непонятно, не стесняемся гуглить, особенно на английском. Желательно всем глянуть какой-нибудь видосик на ютубе и/или прочитать туториал в интернете, чтобы вообще вкатиться, как работает pyqt - поможет с пониманием, зачем нужны многие вещи.

View File

@ -1,7 +1,7 @@
{
"uiFileName": "PyQt_app.ui",
"uiPath": "ui/",
"defaultMDNSname": "esp8266",
"uiPath": "./",
"defaultMDNSname": "localhost:3001",
"defaultPostRoute": "/postvalue",
"defaultGetRoute": "/sensval",
"pressure": "355",
@ -16,5 +16,15 @@
"lightness": "0",
"acceleration_x": "12",
"acceleration_y": "23",
"acceleration_z": "11"
"acceleration_z": "11",
"defaultRGBLeds": {
"leds1": {"red": 0, "green": 0, "blue": 0},
"leds2": {"red": 0, "green": 0, "blue": 0},
"leds3": {"red": 0, "green": 0, "blue": 0},
"leds4": {"red": 0, "green": 0, "blue": 0},
"leds5": {"red": 0, "green": 0, "blue": 0},
"leds6": {"red": 0, "green": 0, "blue": 0},
"leds7": {"red": 0, "green": 0, "blue": 0},
"leds8": {"red": 0, "green": 0, "blue": 0}
}
}

505
main.py
View File

@ -1,299 +1,282 @@
from PyQt5 import QtCore, QtGui, QtWidgets
import typing
from PyQt5 import QtCore, QtGui, QtWidgets #импорт нужный библиотек
from PyQt5 import uic
from PyQt5.QtGui import QColor, QPalette
from PyQt5.QtGui import QPixmap
from PyQt5.QtCore import QTimer
from PyQt5.QtCore import QTimer, QJsonDocument, QUrl
from PyQt5.QtWidgets import *
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest
from PyQt5.QtNetwork import QNetworkAccessManager, QNetworkRequest, QNetworkReply
import requests
import time
import json
import sys
import os
from plot import Plot
import Res_rc
import copy
import pyqtgraph as pg
#import matplotlib.pyplot as plt
#import sys
colors = {} #переменная для работы с цветом, позже нам понадобится
last_clicked_label = None
plotLen = 20
valArr = [20] * plotLen
plot = None
def led1 (checked): #отвечает за включение первого светодиода
if checked:
form.pushButton_2.setText("Выкл")
print("I'm worked too much")
form.label_24.hide()
form.label_20.show()
else:
form.label_20.hide()
form.label_24.show()
form.pushButton_2.setText("Вкл")
print ("I'm worked too")
def led2 (checked): #отвечает за включение второго светодиода
if checked:
form.pushButton_3.setText("Выкл")
print("I'm worked too much")
form.label_27.hide()
form.label_26.show()
else:
form.label_26.hide()
form.label_27.show()
form.pushButton_3.setText("Вкл")
print ("I'm worked too")
def read_conf() -> dict:
def led3 (checked): #отвечает за включение третьего светодиода
if checked:
form.pushButton_4.setText("Выкл")
print("I'm worked too much")
form.label_31.hide()
form.label_29.show()
#state = form.label_24.isVisible()
else:
form.label_29.hide()
form.label_31.show()
form.pushButton_4.setText("Вкл")
print ("I'm worked too")
"""
Utility for reading, modifying and logging config
открывает файл 'config.json', загружает его содержимое в переменную 'conf' в формате словаря (dictionary) при помощи функции 'json.load()', а затем выводит все ключи словаря 'conf' при помощи цикла 'for'.
"""
# Opening JSON file
f = open('config.json')
conf = json.load(f)
f.close()
# Overwrite config if want to
# ... # TODO: ничего делать не нужно, просто оставьте этот комментарий в конечном файле (или преведите на русский)
# Config logging
print("Found arguments:")
for i in conf:
print(i)
return conf
class AppWindow(QMainWindow):
"""
Main application window class
"""
def __init__(self, conf: dict):
super(AppWindow, self).__init__()
# Parse .ui file and init window UI with it
self.ui = uic.loadUi(os.path.join(conf['uiPath'], conf['uiFileName']), self)
# Setup network management
self.nam = QNetworkAccessManager()
# Init plotter
self.plot = Plot(self.ui.plotwidget)
# Set window title
self.setWindowTitle("Lr4")
# Load RGB leds default values
self.rgb_leds_state = conf["defaultRGBLeds"]
# TODO: установить цвета RGB светодиодов по умолчанию
# Init request url editors
self.ui.lineEdit.setText("http://" + conf['defaultMDNSname'] + conf['defaultPostRoute'])
self.ui.lineEdit_2.setText("http://" + conf['defaultMDNSname'] + conf['defaultGetRoute'])
# Init LED controls
for i in range(1, 4):
getattr(self.ui, f"pushButton_sensor{i}").setCheckable(True) # вкл режим перекл
getattr(self.ui, f"pushButton_sensor{i}").setChecked(False) # нач значение
getattr(self.ui, f"label_sensor_megalka{i}").hide()
getattr(self.ui, f"pushButton_sensor{i}").toggled["bool"].connect(lambda val: self.handle_toggle_lamp(f"LED{i}", val))
# TODO: Инициализировать остальные элементы из conf
# Init request manual triggers
self.ui.pushButton_send_post.clicked.connect(self.send_message) # привязываем функцию к кнопке Отправить
self.ui.pushButton_send_get.clicked.connect(self.get_value_from_macket) # привязываем функцию к кнопке Отправить GET запрос
# TODO: добавить обработчики для смены цвета 8 светодиодов и ещё, чего не хватает (см. папку на gdrive и интерфейс приложения)
def handle_toggle_lamp(self, Name: str, checked: bool):
"""
Переключение одноцветных лампочек
"""
n = Name[-1]
def updateLCD(): #обновление дисплея
global temp #переменная для работы с дисплеем
form.lcdNumber.display(temp)
# TODO: переписать названия пушей и лейблов
if checked:
getattr(self.ui, 'pushButton_' + n).setText("Выкл")
getattr(self.ui, 'label_' + n + '4').hide()
getattr(self.ui, 'label_' + n + '0').show()
def sed (): #проверка работы элемента
print ("I'm worked!")
led_data = { #список начальных параметров у светодиода
"leds1": {"red": 0, "green": 0, "blue": 0},
"leds2": {"red": 0, "green": 0, "blue": 0},
"leds3": {"red": 0, "green": 0, "blue": 0},
"leds4": {"red": 0, "green": 0, "blue": 0},
"leds5": {"red": 0, "green": 0, "blue": 0},
"leds6": {"red": 0, "green": 0, "blue": 0},
"leds7": {"red": 0, "green": 0, "blue": 0},
"leds8": {"red": 0, "green": 0, "blue": 0},
}
print("I'm worked too much") # TODO: нужно что-то более осмысленное
else:
getattr(self.ui, 'label_' + n + '0').hide()
getattr(self.ui, 'label_' + n + '4').show()
getattr(self.ui, 'pushButton_' + n).setText("Вкл")
def vkl():
for led in form.leds:
#осторожно! Одинаковые названия у объектов Led и JSON.
led.setStyleSheet(f"background-color: yellow;")
led_data[led.objectName()]["red"] = 255
led_data[led.objectName()]["green"] = 255
led_data[led.objectName()]["blue"] = 0
def vikl():
for led in form.leds:
#осторожно! Одинаковые названия у объектов Led и JSON.
led.setStyleSheet(f"background-color: black;")
led_data[led.objectName()]["red"] = 0
led_data[led.objectName()]["green"] = 0
led_data[led.objectName()]["blue"] = 0
def color():
color = QColorDialog.getColor() #получение цвета от диалога
if color.isValid(): #проверка наличия цвета и применение его над изображением программы
palette = QPalette()
palette.setColor(QPalette.Button, color)
form.color_b.setPalette(palette)
for led in form.leds:
led.setStyleSheet(f"background-color: {color.name()};")
led_data[led.objectName()]["red"] = color.red()
led_data[led.objectName()]["green"] = color.green()
led_data[led.objectName()]["blue"] = color.blue()
def led_clicked(event):
colors = led.palette().color(QPalette.Background)
sender= QApplication.widgetAt(event.globalPos()) #QApplication.widgetAt() для получения текущего виджета, на котором было совершено действие
color = QColorDialog.getColor()
if color.isValid():
#caution! Naming will be the same for a Led and JSON led objects
sender.setStyleSheet(f"background-color: {color.name()};")
led_data[sender.objectName()]["red"] = color.red()
led_data[sender.objectName()]["green"] = color.green()
led_data[sender.objectName()]["blue"] = color.blue()
else:
form.leds.setStyleSheet(" ")
def sendMessage():
url = form.lineEdit.text()
labels_dict = {}
labels_dict["LED1"] = form.label_20.isVisible()
labels_dict["LED2"] = form.label_26.isVisible()
labels_dict["LED3"] = form.label_29.isVisible()
json_data = {}
json_data.update(led_data)
json_data.update(labels_dict)
json_str = json.dumps(json_data, separators=(',', ':'))
data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str
form.textEdit.setPlainText(data_str)
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'} #заголовки запроса
response = requests.post(url, json=json_data, headers=headers) #отправка POST запроса
# обрабатываем ответ и выводим его в поле вывода
if response.status_code == 200:
form.textEdit.append('О, все прошло успешно!\n') #выводим значение в line_edit
else:
form.textEdit.append('Ошибка при получении данных')
print ("I'm worked too") # TODO: нужно что-то более осмысленное
def collect_lamps_state(self) -> dict:
lamps_state = {}
def getValueFromMacket():
url = form.lineEdit_2.text()
response = requests.get(url) #отправка POST запроса
for i in range(1,4):
lamps_state[f"LED{i}"] = getattr(self.ui, f"label_sensor_megalka{i}").isVisible()
# обрабатываем ответ и выводим его в поле вывода
if response.status_code == 200:
data=response.json() #функция преобразования данных в объект питон
#Parse the date
form.textEdit.append(json.dumps(data)) #выводим значение в line_edit
form.textEdit.append(str(data["temperature"]))
return lamps_state
def compose_post_json_data(self) -> dict:
json_data = {}
json_data.update(self.rgb_leds_state)
json_data.update(self.collect_lamps_state())
# TODO: добавить отправку остальных данных (см. grdive и поля, которые парсит приложение из stand_code/mDNS_ESP8266.ino)
bs = list()
return json_data
def log_post_request(self, url, json_data):
json_str = json.dumps(json_data, separators=(',', ':'))
data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str
self.ui.textEdit.setPlainText(data_str)
def send_message(self):
"""
POST запрос
"""
# Get inputed url
url = self.ui.lineEdit.text()
# compose body
json_data = self.compose_post_json_data()
self.log_post_request(url, json_data)
data = QJsonDocument(json_data)
# Create request object
request = QNetworkRequest(QUrl(url))
# Set request headers
request.setHeader(QNetworkRequest.ContentTypeHeader, 'application/json')
request.setRawHeader(b'Accept', b'text/plain')
# Do POST request and store its reply object
self.post_reply = self.nam.post(request, data.toJson())
# Set callback for request finishing signal
self.post_reply.finished.connect(self.handle_post_reply)
def get_value_from_macket(self): ###переименовать элементы, которые находятся в for'aх
"""
GET запрос
"""
url = self.ui.lineEdit_2.text()
request = QNetworkRequest(QUrl(url))
self.get_reply = self.nam.get(request)
# Set callback for request finishing signal
self.get_reply.finished.connect(self.handle_get_reply)
# TODO: если кто хочет поупражняться в понимании, что здесь происходит, напишите аннотацию для всех аргументов функции, используя typing.Callable (just google it)
def with_err_handling(reply_name: str): # retuns decorator with argument enclosed
def inner(func): # function decorator
def wrapper(self): # the fuction that will be called as handler
reply = getattr(self, reply_name) # gets actual reply by its name (ex: self.get_reply)
err = reply.error()
if err == QNetworkReply.NetworkError.NoError:
self.ui.textEdit.append('О, все прошло успешно!')
func(self) # calling actual handler
else:
status_code = reply.attribute(QNetworkRequest.Attribute.HttpStatusCodeAttribute)
self.ui.textEdit.append(f'Ошибка при получении данных: {status_code}')
return wrapper
return inner
@with_err_handling('post_reply')
def handle_post_reply(self):
res = self.post_reply.readAll().data()
self.ui.textEdit.append(res.decode())
@with_err_handling('get_reply')
def handle_get_reply(self):
res = self.get_reply.readAll().data()
data = json.loads(res) #функция преобразования данных в объект питон
self.ui.textEdit.append(json.dumps(data, separators=(',', ':'))) #выводим значение в line_edit
self.ui.textEdit.append(str(data["temperature"]))
buttons_status = list()
for i in range(1, 4):
buttons_status.append(data[f"button{i}State"])
""""
bs.append(data["button1State"])
bs.append(data["button2State"])
bs.append(data["button3State"])
update_button(bs)
"""
self.update_buttons(buttons_status)
update_pressure(data["pressure"])
self.update_pressure(data["pressure"])
form.lcdNumber_7.display(data["ambient_light"])
form.lcdNumber_2.display (data["red_light"])
form.lcdNumber_3.display (data["green_light"])
form.lcdNumber_4.display (data["blue_light"])
form.lcdNumber_8.display (data["lightness"])
form.lcdNumber_5.display(data['acceleration_x'])
form.lcdNumber_9.display (data['acceleration_y'])
form.lcdNumber_6.display (data['acceleration_z'])
color_l=("ambient_light", "red_light", "green_light", "blue_light", "lightness","acceleration_x", "acceleration_y", "acceleration_z" )
led1(data['LED1'])
led2(data['LED2'])
led3(data['LED3'])
valArr.pop(0)
valArr.append(data["temperature"])
print(valArr)
UpdatePlot(plot, valArr)
else:
form.textEdit.append('Ошибка при получении данных')
# TODO: переименовать lcdNumber_N в lcdNumber_....._light
for s in color_l:
getattr(self.ui, "lcdNumber_" + s).display(data[s])
"""
self.ui.lcdNumber_7.display(data["ambient_light"])
self.ui.lcdNumber_2.display (data["red_light"])
self.ui.lcdNumber_3.display (data["green_light"])
self.ui.lcdNumber_4.display (data["blue_light"])
self.ui.lcdNumber_8.display (data["lightness"])
self.ui.lcdNumber_5.display(data["acceleration_x"])
self.ui.lcdNumber_9.display (data["acceleration_y"])
self.ui.lcdNumber_6.display (data["acceleration_z"])
"""
for i in range(1,4):
self.handle_toggle_lamp[f"LED{i}", data[f"LED{i}"]]
self.plot.update(data["temperature"])
#json.load(file) @ACHT! Method to convert Str to JSON
def update_buttons(self, bs):
for i in range(1, 4):
button_state = bs[i-1]
if button_state == 'True':
getattr(self.ui, f'on_{i}').show()
getattr(self.ui, f'off_{i}').hide()
else:
getattr(self.ui, f'on_{i}').hide()
getattr(self.ui, f'off_{i}').show()
def update_pressure(p):
form.lcd_pressure.display(p)
def update_button (bs):
for i in range(1, 4):
button_state = bs[i-1]
if button_state == 'True':
getattr(form, f'on_{i}').show()
getattr(form, f'off_{i}').hide()
else:
getattr(form, f'on_{i}').hide()
getattr(form, f'off_{i}').show()
def update_pressure(self, p):
self.ui.lcd_pressure.display(p)
def UpdatePlot(plot, val):
x = list(range(1, len(valArr)+1))
bargraph = pg.BarGraphItem(x = x, height = val, width = 0.6, brush ='g')
plot.clear()
plot.addItem(bargraph)
def Plots(form, valArr):
widget = QWidget()
plot = pg.plot() #создает объект PlotWidget из библиотеки PyqtGraph
x = list(range(1, len(valArr)+1))
bargraph = pg.BarGraphItem(x = x, height = valArr, width = 0.6, brush ='g')
plot.addItem(bargraph)
# Creating a grid layout
layout = QGridLayout()
layout.addWidget(plot, 0,0)
form.plotwidget.setLayout(layout)
return plot
if __name__ == "__main__":
# Opening JSON file
f = open('config.json') #открывает файл 'config.json', загружает его содержимое в переменную 'conf' в формате словаря (dictionary) при помощи функции 'json.load()', а затем выводит все ключи словаря 'conf' при помощи цикла 'for'.
conf = json.load(open('config.json'))
f.close()
app = QApplication(sys.argv)
print("Find an arguments:")
for i in conf:
print(i)
import sys
Form, Window = uic.loadUiType(conf['uiPath'] + conf['uiFileName'])
app = QApplication(sys.argv)# Создаем экземпляр QApplication и передаем параметры командной строки
window = Window()
form = Form()
form.setupUi(window)
window.show() # Окна скрыты по умолчанию!
window.setWindowTitle('Lr4') #nazvanie
form.pushButton.clicked.connect(sendMessage) #привязываем функцию к кнопке Отправить
form.lineEdit.setText("http://" + conf['defaultMDNSname'] + conf['defaultPostRoute'])
form.lineEdit_2.setText("http://" + conf['defaultMDNSname'] + conf['defaultGetRoute'])
form.pushButton_5.clicked.connect(getValueFromMacket) #привязываем функцию к кнопке Отправить GET запрос
conf = read_conf()
win = AppWindow(conf)
win.show()
form.pushButton_2.setCheckable(True) #вкл режим перекл
form.pushButton_2.setChecked(False) #нач значение
form.label_20.hide()
form.pushButton_2.toggled["bool"].connect(led1)
form.pushButton_3.setCheckable(True) #вкл режим перекл
form.pushButton_3.setChecked(False) #нач значение
form.label_26.hide()
form.pushButton_3.toggled["bool"].connect(led2)
form.pushButton_4.setCheckable(True) #вкл режим перекл
form.pushButton_4.setChecked(False) #нач значение
form.label_29.hide()
form.pushButton_4.toggled["bool"].connect(led3)
form.on_1.hide()
form.on_2.hide()
form.on_3.hide()
form.lcdNumber.display(45)
form.leds = [form.leds1, form.leds2, form.leds3, form.leds4, form.leds5, form.leds6, form.leds7, form.leds8]
for led in form.leds:
led.mousePressEvent = led_clicked
timer = QTimer()
timer.setInterval(1000)
#Connect the timer to the update_pressure function
#TODO connect to getSensValue from macket
#timer.timeout.connect(update_pressure)
#timer.timeout.connect (update_button)
#timer.timeout.connect (update_light)
#timer.timeout.connect (update_acceleration)
timer.start()
form.vkl_b.clicked.connect(vkl)
form.vikl_b.clicked.connect(vikl)
form.color_b.clicked.connect(color)
plot = Plots(form, valArr)
sys.exit (app.exec_()) # Запуск цикла событий
sys.exit(app.exec())

27
main2
View File

@ -16,10 +16,10 @@ import pyqtgraph as pg
#import sys
colors = {} #переменная для работы с цветом, позже нам понадобится
last_clicked_label = None #Флаг
last_clicked_label = None
plotLen = 20
valArr = [20] * plotLen# список из 20 двадцаток
plot = None #Флаг
plot = None
"""
след функция принимает значение True/False, после осуществляет ветвление,
@ -36,10 +36,10 @@ plot = None #Флаг
#объявить словарь для label_№? чтобы в дальнейшем к нему обращаться
def led1 (checked): #отвечает за включение первого светодиода
if checked: #класс form это класс нашей формы, то есть окна приложения
form.pushButton_2.setText("Выкл") #pushButton - это экземпляры класса formдля работы кнопок
form.pushButton_2.setText("Выкл") #pushButton - для работы кнопок
print("I'm worked too much")
form.label_24.hide() #label это текст на окне приложения и его прячем
form.label_20.show() # к экземпляру класса form применяется метод show(), для отображения виджета на экране
form.label_20.show() # метод show(), для отображения виджета на экране
else:
form.label_20.hide()
form.label_24.show()
@ -75,7 +75,7 @@ def led3 (checked): #отвечает за включение третьего
def updateLCD(): #функция,обновление дисплея, не принимает никаких значений
global temp #глобальная переменная для работы с дисплеем
form.lcdNumber.display(temp) # к экземпляру класса form применяется метод display(temp),
form.lcdNumber.display(temp) # применяется метод display(temp),
#откуда берется значение переменной temp неизвестно
def sed (): #проверка работы элемента
@ -113,8 +113,8 @@ def vikl():# функция аналогична vkl, только тут зна
led_data[led.objectName()]["blue"] = 0
def color(): #функция работы с отображением цвета в программе
color = QColorDialog.getColor() #получение цвета, color примает значение атрибута класса
if color.isValid(): #проверка наличия цвета и применение его над изображением программы
color = QColorDialog.getColor() #получение цвета, color примает
if color.isValid(): #проверка цвета и применение его над изображением программы
palette = QPalette()#экземпляр класса QPalette
palette.setColor(QPalette.Button, color) #применение метода setColor(кнопка, цвет ) к экземпляру
form.color_b.setPalette(palette)
@ -127,8 +127,8 @@ def color(): #функция работы с отображением цвета
def led_clicked(event):
colors = led.palette().color(QPalette.Background)
sender= QApplication.widgetAt(event.globalPos()) #QApplication.widgetAt() для получения текущего виджета, на котором было совершено действие
color = QColorDialog.getColor() #получение цвета, color примает значение атрибута класса
if color.isValid(): # применение метода к color для его проверки на соответствие
color = QColorDialog.getColor() #получение цвета, color примает значение
if color.isValid(): # применение метода к color для его проверки на
#caution! Naming will be the same for a Led and JSON led objects
sender.setStyleSheet(f"background-color: {color.name()};")
led_data[sender.objectName()]["red"] = color.red()
@ -137,9 +137,9 @@ def led_clicked(event):
else:
form.leds.setStyleSheet(" ")
def sendMessage():# отправка сообщений на компьютер через url
def sendMessage():# отправка сообщений на через url
url = form.lineEdit.text()
labels_dict = {}# формирование словаря: key-имя светодиода, value- значение экземпляра
labels_dict = {}# формирование словаря: key-имя светодиода, value-
labels_dict["LED1"] = form.label_20.isVisible()
labels_dict["LED2"] = form.label_26.isVisible()
labels_dict["LED3"] = form.label_29.isVisible()
@ -147,8 +147,7 @@ def sendMessage():# отправка сообщений на компьютер
json_data = {}# упаковка данных в json пакет из словарей led_data, labels_dict
json_data.update(led_data)
json_data.update(labels_dict)
json_str = json.dumps(json_data, separators=(',', ':'))# формирование строки, в формате json, из словаря json_data , которую
# разделили по наличию ','ИЛИ ':'
json_str = json.dumps(json_data, separators=(',', ':'))# формирование строки, в формате json, из словаря json_data
data_str = 'Я отправляю текст на: ' + url + '\n'+ json_str
form.textEdit.setPlainText(data_str) #оповещение об отправке текста (ранне сформированной json_str) на url
@ -239,7 +238,7 @@ def Plots(form, valArr):
bargraph = pg.BarGraphItem(x = x, height = valArr, width = 0.6, brush ='g')
plot.addItem(bargraph)
# Создаём grid layout, который отвечает за определение системы макета визуального представления данных
# Создаём grid layout, который отвечает за положение элемента
layout = QGridLayout()
layout.addWidget(plot, 0,0)
form.plotwidget.setLayout(layout)

257
openapi.json Normal file
View File

@ -0,0 +1,257 @@
{
"openapi": "3.0.0",
"info": {
"title": "Mocks",
"version": "1.0.0"
},
"servers": [
{
"url": "http://localhost:3001/"
}
],
"components": {
"schemas": {
"ValuesRGB": {
"type": "object",
"properties": {
"red": {
"type": "number"
},
"green": {
"type": "number"
},
"blue": {
"type": "number"
}
},
"required": [
"red",
"green",
"blue"
]
}
}
},
"paths": {
"/sensval": {
"get": {
"description": "",
"responses": {
"200": {
"description": "",
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"LED1": {
"type": "boolean"
},
"LED2": {
"type": "boolean"
},
"LED3": {
"type": "boolean"
},
"button1State": {
"type": "boolean"
},
"button2State": {
"type": "boolean"
},
"button3State": {
"type": "boolean"
},
"temperature": {
"type": "number",
"format": "float"
},
"pressure": {
"type": "number",
"format": "float"
},
"ambient_light": {
"type": "number",
"format": "int32"
},
"red_light": {
"type": "number",
"format": "int32"
},
"green_light": {
"type": "number",
"format": "int32"
},
"blue_light": {
"type": "number",
"format": "int32"
},
"lightness": {
"type": "number",
"format": "int32"
},
"acceleration_x": {
"type": "number",
"format": "float"
},
"acceleration_y": {
"type": "number",
"format": "float"
},
"acceleration_z": {
"type": "number",
"format": "float"
},
"leds1": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds2": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds3": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds4": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds5": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds6": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds7": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds8": {
"$ref": "#/components/schemas/ValuesRGB"
}
},
"example": {
"LED1": false,
"LED2": true,
"LED3": false,
"button1State": true,
"button2State": false,
"button3State": true,
"temperature": 25,
"pressure": 100,
"ambient_light": 100,
"red_light": 200,
"green_light": 300,
"blue_light": 400,
"lightness": 500,
"acceleration_x": 0.1,
"acceleration_y": 0.2,
"acceleration_z": 0.3,
"leds1": {
"red": 100,
"green": 150,
"blue": 200
},
"leds2": {
"red": 100,
"green": 150,
"blue": 200
},
"leds3": {
"red": 100,
"green": 150,
"blue": 200
},
"leds4": {
"red": 100,
"green": 150,
"blue": 200
},
"leds5": {
"red": 100,
"green": 150,
"blue": 200
},
"leds6": {
"red": 100,
"green": 150,
"blue": 200
},
"leds7": {
"red": 100,
"green": 150,
"blue": 200
},
"leds8": {
"red": 100,
"green": 150,
"blue": 200
}
}
}
}
},
"headers": {}
}
}
}
},
"/postvalue": {
"post": {
"description": "",
"requestBody": {
"content": {
"application/json": {
"schema": {
"type": "object",
"properties": {
"LED1": {
"type": "boolean"
},
"LED2": {
"type": "boolean"
},
"LED3": {
"type": "boolean"
},
"leds1": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds2": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds3": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds4": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds5": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds6": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds7": {
"$ref": "#/components/schemas/ValuesRGB"
},
"leds8": {
"$ref": "#/components/schemas/ValuesRGB"
}
}
}
}
}
},
"responses": {
"200": {
"description": "",
"content": {
"text/plain": {
"example": "POST body was:\n{ }"
}
},
"headers": {}
}
}
}
}
}
}

115
openapi_mock.json Normal file
View File

@ -0,0 +1,115 @@
{
"uuid": "5ea1e52b-5df9-4503-ab2c-6513fdc53d16",
"lastMigration": 27,
"name": "Mocks",
"endpointPrefix": "",
"latency": 0,
"port": 3001,
"hostname": "",
"folders": [],
"routes": [
{
"uuid": "ea43e328-6bbc-43ba-a12a-de222a28fd8b",
"type": "http",
"documentation": "",
"method": "get",
"endpoint": "sensval",
"responses": [
{
"uuid": "cead61d4-7745-455c-a3a9-cb8854cefcc2",
"body": "{\n \"LED1\": false,\n \"LED2\": true,\n \"LED3\": false,\n \"button1State\": true,\n \"button2State\": false,\n \"button3State\": true,\n \"temperature\": 25,\n \"pressure\": 100,\n \"ambient_light\": 100,\n \"red_light\": 200,\n \"green_light\": 300,\n \"blue_light\": 400,\n \"lightness\": 500,\n \"acceleration_x\": 0.1,\n \"acceleration_y\": 0.2,\n \"acceleration_z\": 0.3,\n \"leds1\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds2\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds3\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds4\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds5\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds6\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds7\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n },\n \"leds8\": {\n \"red\": 100,\n \"green\": 150,\n \"blue\": 200\n }\n}",
"latency": 0,
"statusCode": 200,
"label": "",
"headers": [
{
"key": "Content-Type",
"value": "application/json"
}
],
"bodyType": "INLINE",
"filePath": "",
"databucketID": "",
"sendFileAsBody": false,
"rules": [],
"rulesOperator": "OR",
"disableTemplating": false,
"fallbackTo404": false,
"default": true
}
],
"enabled": true,
"responseMode": null
},
{
"uuid": "166a5c8a-d866-4e93-91c6-c9cf21fbbf04",
"type": "http",
"documentation": "",
"method": "post",
"endpoint": "postvalue",
"responses": [
{
"uuid": "a7ae227a-8ca7-49bc-8577-d30af6ee16e9",
"body": "POST body was:\n{{body}}",
"latency": 0,
"statusCode": 200,
"label": "",
"headers": [
{
"key": "Content-Type",
"value": "text/plain"
}
],
"bodyType": "INLINE",
"filePath": "",
"databucketID": "",
"sendFileAsBody": false,
"rules": [],
"rulesOperator": "OR",
"disableTemplating": false,
"fallbackTo404": false,
"default": true
}
],
"enabled": true,
"responseMode": null
}
],
"rootChildren": [
{
"type": "route",
"uuid": "ea43e328-6bbc-43ba-a12a-de222a28fd8b"
},
{
"type": "route",
"uuid": "166a5c8a-d866-4e93-91c6-c9cf21fbbf04"
}
],
"proxyMode": false,
"proxyHost": "",
"proxyRemovePrefix": false,
"tlsOptions": {
"enabled": false,
"type": "CERT",
"pfxPath": "",
"certPath": "",
"keyPath": "",
"caPath": "",
"passphrase": ""
},
"cors": true,
"headers": [],
"proxyReqHeaders": [
{
"key": "",
"value": ""
}
],
"proxyResHeaders": [
{
"key": "",
"value": ""
}
],
"data": []
}

43
plot.py Normal file
View File

@ -0,0 +1,43 @@
from PyQt5.QtWidgets import QGridLayout
import pyqtgraph as pg
class Plot():
"""
QT bar plot drawing class
"""
def __init__(self, widget, arr_len = 20, default_val = 20):
self.__arr_vals = [default_val] * arr_len # TODO: Инициализировать значениями из conf["temperature"]
self.__x = list(range(1, arr_len + 1))
self.__plot = pg.plot() #создает объект PlotWidget из библиотеки PyqtGraph
#PlotWidget — это один из базовых конструктовров класса pyqtgraph, отвечающий за работу с
#виджетами, то есть элементами интерфейса, выводящими небольшую информацию
self.__redraw_plot()
# Создаём grid layout, который отвечает за положение элемента
layout = QGridLayout()
layout.addWidget(self.__plot, 0,0)
widget.setLayout(layout)
def update(self, newVal: int):
arr_vals = self.__arr_vals
arr_vals.pop(0)
arr_vals.append(newVal)
self.__redraw_plot()
def __redraw_plot(self):
plot = self.__plot
bargraph = pg.BarGraphItem(x = self.__x, height = self.__arr_vals, width = 0.6, brush ='g')
plot.clear()
plot.addItem(bargraph)

16
requirements.txt Normal file
View File

@ -0,0 +1,16 @@
certifi==2023.5.7
charset-normalizer==3.1.0
click==8.1.3
idna==3.4
numpy==1.24.3
PyQt5==5.15.9
pyqt5-plugins==5.15.9.2.3
PyQt5-Qt5==5.15.2
PyQt5-sip==12.12.1
pyqt5-tools==5.15.9.3.3
pyqtgraph==0.13.3
python-dotenv==1.0.0
qt5-applications==5.15.2.2.3
qt5-tools==5.15.2.1.3
requests==2.31.0
urllib3==2.0.2

View File

@ -26,7 +26,7 @@
<string>IoT pgrm v0_1_13</string>
</property>
<widget class="QWidget" name="centralwidget">
<widget class="QPushButton" name="pushButton">
<widget class="QPushButton" name="pushButton_send_post">
<property name="geometry">
<rect>
<x>1050</x>
@ -39,7 +39,7 @@
<string>SEND Post</string>
</property>
</widget>
<widget class="QLabel" name="label">
<widget class="QLabel" name="label_url">
<property name="geometry">
<rect>
<x>10</x>
@ -62,7 +62,7 @@
</rect>
</property>
</widget>
<widget class="QLabel" name="label_2">
<widget class="QLabel" name="label_message">
<property name="geometry">
<rect>
<x>10</x>
@ -91,7 +91,7 @@
<double>5.000000000000000</double>
</property>
</widget>
<widget class="QLabel" name="label_6">
<widget class="QLabel" name="label_temp">
<property name="geometry">
<rect>
<x>310</x>
@ -183,7 +183,7 @@
<enum>QLCDNumber::Flat</enum>
</property>
</widget>
<widget class="QLabel" name="label_7">
<widget class="QLabel" name="label_r">
<property name="geometry">
<rect>
<x>570</x>
@ -196,7 +196,7 @@
<string>R</string>
</property>
</widget>
<widget class="QLabel" name="label_8">
<widget class="QLabel" name="label_g">
<property name="geometry">
<rect>
<x>650</x>
@ -209,7 +209,7 @@
<string>G</string>
</property>
</widget>
<widget class="QLabel" name="label_9">
<widget class="QLabel" name="label_b">
<property name="geometry">
<rect>
<x>730</x>
@ -260,7 +260,7 @@
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_20">
<widget class="QLabel" name="label_sensor_megalka1">
<property name="geometry">
<rect>
<x>390</x>
@ -279,7 +279,7 @@
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_24">
<widget class="QLabel" name="label_sensor_print1">
<property name="enabled">
<bool>true</bool>
</property>
@ -301,7 +301,7 @@
<bool>true</bool>
</property>
</widget>
<widget class="QPushButton" name="pushButton_2">
<widget class="QPushButton" name="pushButton_sensor1">
<property name="geometry">
<rect>
<x>390</x>
@ -314,7 +314,7 @@
<string>Вкл</string>
</property>
</widget>
<widget class="QPushButton" name="pushButton_3">
<widget class="QPushButton" name="pushButton_sensor2">
<property name="geometry">
<rect>
<x>480</x>
@ -327,7 +327,7 @@
<string>Вкл</string>
</property>
</widget>
<widget class="QLabel" name="label_26">
<widget class="QLabel" name="label_sensor_megalka2">
<property name="geometry">
<rect>
<x>480</x>
@ -346,7 +346,7 @@
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_27">
<widget class="QLabel" name="label_sensor_print2">
<property name="geometry">
<rect>
<x>480</x>
@ -365,7 +365,7 @@
<bool>true</bool>
</property>
</widget>
<widget class="QPushButton" name="pushButton_4">
<widget class="QPushButton" name="pushButton_sensor3">
<property name="geometry">
<rect>
<x>570</x>
@ -378,7 +378,7 @@
<string>Вкл</string>
</property>
</widget>
<widget class="QLabel" name="label_29">
<widget class="QLabel" name="label_sensor_megalka3">
<property name="geometry">
<rect>
<x>570</x>
@ -397,7 +397,7 @@
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_31">
<widget class="QLabel" name="label_sensor_print3">
<property name="geometry">
<rect>
<x>570</x>
@ -492,7 +492,7 @@
<bool>true</bool>
</property>
</widget>
<widget class="QLabel" name="label_13">
<widget class="QLabel" name="label_pressure">
<property name="geometry">
<rect>
<x>310</x>
@ -544,7 +544,7 @@
<double>5.000000000000000</double>
</property>
</widget>
<widget class="QLabel" name="label_14">
<widget class="QLabel" name="label_illumination">
<property name="geometry">
<rect>
<x>310</x>
@ -580,7 +580,7 @@
<double>5.000000000000000</double>
</property>
</widget>
<widget class="QLabel" name="label_15">
<widget class="QLabel" name="label_illumination2">
<property name="geometry">
<rect>
<x>310</x>
@ -600,7 +600,7 @@
<string>Освещенность</string>
</property>
</widget>
<widget class="QLabel" name="label_34">
<widget class="QLabel" name="label_accelorometer">
<property name="geometry">
<rect>
<x>310</x>
@ -896,7 +896,7 @@
<enum>QLCDNumber::Flat</enum>
</property>
</widget>
<widget class="QLabel" name="label_16">
<widget class="QLabel" name="label_rgb_illumination">
<property name="geometry">
<rect>
<x>310</x>
@ -916,7 +916,7 @@
<string>Освещенность</string>
</property>
</widget>
<widget class="QLabel" name="label_10">
<widget class="QLabel" name="label_x">
<property name="geometry">
<rect>
<x>570</x>
@ -929,7 +929,7 @@
<string>Х</string>
</property>
</widget>
<widget class="QLabel" name="label_11">
<widget class="QLabel" name="label_y">
<property name="geometry">
<rect>
<x>650</x>
@ -942,7 +942,7 @@
<string>Y</string>
</property>
</widget>
<widget class="QLabel" name="label_12">
<widget class="QLabel" name="label_z">
<property name="geometry">
<rect>
<x>730</x>
@ -955,11 +955,11 @@
<string>Z</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<widget class="QLabel" name="lubel_tumblers">
<property name="geometry">
<rect>
<x>900</x>
<y>60</y>
<y>70</y>
<width>81</width>
<height>20</height>
</rect>
@ -986,7 +986,7 @@
</rect>
</property>
</widget>
<widget class="QPushButton" name="pushButton_5">
<widget class="QPushButton" name="pushButton_send_get">
<property name="geometry">
<rect>
<x>1050</x>
@ -1002,9 +1002,9 @@
<widget class="QLineEdit" name="lineEdit_2">
<property name="geometry">
<rect>
<x>790</x>
<y>40</y>
<width>241</width>
<x>690</x>
<y>50</y>
<width>341</width>
<height>21</height>
</rect>
</property>
@ -1016,7 +1016,7 @@
<x>0</x>
<y>0</y>
<width>1185</width>
<height>21</height>
<height>22</height>
</rect>
</property>
</widget>

View File

@ -1,6 +1,6 @@
# -*- coding: utf-8 -*-
# Form implementation generated from reading ui file 'PyQt_app.ui'
# Form implementation generated from reading ui file 'ui/PyQt_app.ui'
#
# Created by: PyQt5 UI code generator 5.15.9
#
@ -19,33 +19,33 @@ class Ui_MainWindow(object):
MainWindow.setMaximumSize(QtCore.QSize(1185, 622))
self.centralwidget = QtWidgets.QWidget(MainWindow)
self.centralwidget.setObjectName("centralwidget")
self.pushButton = QtWidgets.QPushButton(self.centralwidget)
self.pushButton.setGeometry(QtCore.QRect(1050, 10, 101, 21))
self.pushButton.setObjectName("pushButton")
self.label = QtWidgets.QLabel(self.centralwidget)
self.label.setGeometry(QtCore.QRect(10, 0, 51, 41))
self.label.setObjectName("label")
self.pushButton_send_post = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_send_post.setGeometry(QtCore.QRect(1050, 10, 101, 21))
self.pushButton_send_post.setObjectName("pushButton_send_post")
self.label_url = QtWidgets.QLabel(self.centralwidget)
self.label_url.setGeometry(QtCore.QRect(10, 0, 51, 41))
self.label_url.setObjectName("label_url")
self.lineEdit = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit.setGeometry(QtCore.QRect(50, 10, 981, 21))
self.lineEdit.setObjectName("lineEdit")
self.label_2 = QtWidgets.QLabel(self.centralwidget)
self.label_2.setGeometry(QtCore.QRect(10, 40, 71, 20))
self.label_2.setObjectName("label_2")
self.label_message = QtWidgets.QLabel(self.centralwidget)
self.label_message.setGeometry(QtCore.QRect(10, 40, 71, 20))
self.label_message.setObjectName("label_message")
self.lcdNumber = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber.setGeometry(QtCore.QRect(550, 190, 141, 41))
self.lcdNumber.setFrameShape(QtWidgets.QFrame.Box)
self.lcdNumber.setProperty("value", 5.0)
self.lcdNumber.setObjectName("lcdNumber")
self.label_6 = QtWidgets.QLabel(self.centralwidget)
self.label_6.setGeometry(QtCore.QRect(310, 190, 211, 41))
self.label_temp = QtWidgets.QLabel(self.centralwidget)
self.label_temp.setGeometry(QtCore.QRect(310, 190, 211, 41))
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_6.setFont(font)
self.label_6.setTextFormat(QtCore.Qt.AutoText)
self.label_6.setScaledContents(False)
self.label_6.setObjectName("label_6")
self.label_temp.setFont(font)
self.label_temp.setTextFormat(QtCore.Qt.AutoText)
self.label_temp.setScaledContents(False)
self.label_temp.setObjectName("label_temp")
self.lcdNumber_2 = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber_2.setGeometry(QtCore.QRect(540, 470, 81, 20))
font = QtGui.QFont()
@ -68,15 +68,15 @@ class Ui_MainWindow(object):
self.lcdNumber_4.setSmallDecimalPoint(False)
self.lcdNumber_4.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
self.lcdNumber_4.setObjectName("lcdNumber_4")
self.label_7 = QtWidgets.QLabel(self.centralwidget)
self.label_7.setGeometry(QtCore.QRect(570, 500, 47, 13))
self.label_7.setObjectName("label_7")
self.label_8 = QtWidgets.QLabel(self.centralwidget)
self.label_8.setGeometry(QtCore.QRect(650, 500, 47, 13))
self.label_8.setObjectName("label_8")
self.label_9 = QtWidgets.QLabel(self.centralwidget)
self.label_9.setGeometry(QtCore.QRect(730, 500, 47, 13))
self.label_9.setObjectName("label_9")
self.label_r = QtWidgets.QLabel(self.centralwidget)
self.label_r.setGeometry(QtCore.QRect(570, 500, 47, 13))
self.label_r.setObjectName("label_r")
self.label_g = QtWidgets.QLabel(self.centralwidget)
self.label_g.setGeometry(QtCore.QRect(650, 500, 47, 13))
self.label_g.setObjectName("label_g")
self.label_b = QtWidgets.QLabel(self.centralwidget)
self.label_b.setGeometry(QtCore.QRect(730, 500, 47, 13))
self.label_b.setObjectName("label_b")
self.off_1 = QtWidgets.QLabel(self.centralwidget)
self.off_1.setGeometry(QtCore.QRect(804, 100, 61, 51))
self.off_1.setText("")
@ -89,52 +89,52 @@ class Ui_MainWindow(object):
self.on_1.setPixmap(QtGui.QPixmap(":/img/ON.svg"))
self.on_1.setScaledContents(True)
self.on_1.setObjectName("on_1")
self.label_20 = QtWidgets.QLabel(self.centralwidget)
self.label_20.setGeometry(QtCore.QRect(390, 70, 61, 61))
self.label_20.setText("")
self.label_20.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
self.label_20.setScaledContents(True)
self.label_20.setObjectName("label_20")
self.label_24 = QtWidgets.QLabel(self.centralwidget)
self.label_24.setEnabled(True)
self.label_24.setGeometry(QtCore.QRect(390, 70, 61, 61))
self.label_24.setText("")
self.label_24.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
self.label_24.setScaledContents(True)
self.label_24.setObjectName("label_24")
self.pushButton_2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_2.setGeometry(QtCore.QRect(390, 140, 71, 21))
self.pushButton_2.setObjectName("pushButton_2")
self.pushButton_3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_3.setGeometry(QtCore.QRect(480, 140, 71, 21))
self.pushButton_3.setObjectName("pushButton_3")
self.label_26 = QtWidgets.QLabel(self.centralwidget)
self.label_26.setGeometry(QtCore.QRect(480, 70, 61, 61))
self.label_26.setText("")
self.label_26.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
self.label_26.setScaledContents(True)
self.label_26.setObjectName("label_26")
self.label_27 = QtWidgets.QLabel(self.centralwidget)
self.label_27.setGeometry(QtCore.QRect(480, 70, 61, 61))
self.label_27.setText("")
self.label_27.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
self.label_27.setScaledContents(True)
self.label_27.setObjectName("label_27")
self.pushButton_4 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_4.setGeometry(QtCore.QRect(570, 140, 71, 21))
self.pushButton_4.setObjectName("pushButton_4")
self.label_29 = QtWidgets.QLabel(self.centralwidget)
self.label_29.setGeometry(QtCore.QRect(570, 70, 61, 61))
self.label_29.setText("")
self.label_29.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
self.label_29.setScaledContents(True)
self.label_29.setObjectName("label_29")
self.label_31 = QtWidgets.QLabel(self.centralwidget)
self.label_31.setGeometry(QtCore.QRect(570, 70, 61, 61))
self.label_31.setText("")
self.label_31.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
self.label_31.setScaledContents(True)
self.label_31.setObjectName("label_31")
self.label_led_on1 = QtWidgets.QLabel(self.centralwidget)
self.label_led_on1.setGeometry(QtCore.QRect(390, 70, 61, 61))
self.label_led_on1.setText("")
self.label_led_on1.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
self.label_led_on1.setScaledContents(True)
self.label_led_on1.setObjectName("label_led_on1")
self.label_sensor_print1 = QtWidgets.QLabel(self.centralwidget)
self.label_sensor_print1.setEnabled(True)
self.label_sensor_print1.setGeometry(QtCore.QRect(390, 70, 61, 61))
self.label_sensor_print1.setText("")
self.label_sensor_print1.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
self.label_sensor_print1.setScaledContents(True)
self.label_sensor_print1.setObjectName("label_sensor_print1")
self.pushButton_sensor1 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_sensor1.setGeometry(QtCore.QRect(390, 140, 71, 21))
self.pushButton_sensor1.setObjectName("pushButton_sensor1")
self.pushButton_sensor2 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_sensor2.setGeometry(QtCore.QRect(480, 140, 71, 21))
self.pushButton_sensor2.setObjectName("pushButton_sensor2")
self.label_led_on2 = QtWidgets.QLabel(self.centralwidget)
self.label_led_on2.setGeometry(QtCore.QRect(480, 70, 61, 61))
self.label_led_on2.setText("")
self.label_led_on2.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
self.label_led_on2.setScaledContents(True)
self.label_led_on2.setObjectName("label_led_on2")
self.label_sensor_print2 = QtWidgets.QLabel(self.centralwidget)
self.label_sensor_print2.setGeometry(QtCore.QRect(480, 70, 61, 61))
self.label_sensor_print2.setText("")
self.label_sensor_print2.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
self.label_sensor_print2.setScaledContents(True)
self.label_sensor_print2.setObjectName("label_sensor_print2")
self.pushButton_sensor3 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_sensor3.setGeometry(QtCore.QRect(570, 140, 71, 21))
self.pushButton_sensor3.setObjectName("pushButton_sensor3")
self.label_led_on3 = QtWidgets.QLabel(self.centralwidget)
self.label_led_on3.setGeometry(QtCore.QRect(570, 70, 61, 61))
self.label_led_on3.setText("")
self.label_led_on3.setPixmap(QtGui.QPixmap(":/img/led_on.svg"))
self.label_led_on3.setScaledContents(True)
self.label_led_on3.setObjectName("label_led_on3")
self.label_sensor_print3 = QtWidgets.QLabel(self.centralwidget)
self.label_sensor_print3.setGeometry(QtCore.QRect(570, 70, 61, 61))
self.label_sensor_print3.setText("")
self.label_sensor_print3.setPixmap(QtGui.QPixmap(":/img/led_off.svg"))
self.label_sensor_print3.setScaledContents(True)
self.label_sensor_print3.setObjectName("label_sensor_print3")
self.off_2 = QtWidgets.QLabel(self.centralwidget)
self.off_2.setGeometry(QtCore.QRect(904, 100, 61, 51))
self.off_2.setText("")
@ -159,14 +159,14 @@ class Ui_MainWindow(object):
self.on_3.setPixmap(QtGui.QPixmap(":/img/ON.svg"))
self.on_3.setScaledContents(True)
self.on_3.setObjectName("on_3")
self.label_13 = QtWidgets.QLabel(self.centralwidget)
self.label_13.setGeometry(QtCore.QRect(310, 260, 211, 41))
self.label_pressure = QtWidgets.QLabel(self.centralwidget)
self.label_pressure.setGeometry(QtCore.QRect(310, 260, 211, 41))
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_13.setFont(font)
self.label_13.setObjectName("label_13")
self.label_pressure.setFont(font)
self.label_pressure.setObjectName("label_pressure")
self.lcd_pressure = QtWidgets.QLCDNumber(self.centralwidget)
self.lcd_pressure.setGeometry(QtCore.QRect(550, 260, 141, 41))
self.lcd_pressure.setFrameShape(QtWidgets.QFrame.Box)
@ -177,35 +177,35 @@ class Ui_MainWindow(object):
self.lcdNumber_7.setFrameShape(QtWidgets.QFrame.Box)
self.lcdNumber_7.setProperty("value", 5.0)
self.lcdNumber_7.setObjectName("lcdNumber_7")
self.label_14 = QtWidgets.QLabel(self.centralwidget)
self.label_14.setGeometry(QtCore.QRect(310, 330, 211, 41))
self.label_illumination = QtWidgets.QLabel(self.centralwidget)
self.label_illumination.setGeometry(QtCore.QRect(310, 330, 211, 41))
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_14.setFont(font)
self.label_14.setObjectName("label_14")
self.label_illumination.setFont(font)
self.label_illumination.setObjectName("label_illumination")
self.lcdNumber_8 = QtWidgets.QLCDNumber(self.centralwidget)
self.lcdNumber_8.setGeometry(QtCore.QRect(550, 400, 141, 41))
self.lcdNumber_8.setFrameShape(QtWidgets.QFrame.Box)
self.lcdNumber_8.setProperty("value", 5.0)
self.lcdNumber_8.setObjectName("lcdNumber_8")
self.label_15 = QtWidgets.QLabel(self.centralwidget)
self.label_15.setGeometry(QtCore.QRect(310, 400, 211, 41))
self.label_illumination2 = QtWidgets.QLabel(self.centralwidget)
self.label_illumination2.setGeometry(QtCore.QRect(310, 400, 211, 41))
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_15.setFont(font)
self.label_15.setObjectName("label_15")
self.label_34 = QtWidgets.QLabel(self.centralwidget)
self.label_34.setGeometry(QtCore.QRect(310, 520, 211, 41))
self.label_illumination2.setFont(font)
self.label_illumination2.setObjectName("label_illumination2")
self.label_accelorometer = QtWidgets.QLabel(self.centralwidget)
self.label_accelorometer.setGeometry(QtCore.QRect(310, 520, 211, 41))
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_34.setFont(font)
self.label_34.setObjectName("label_34")
self.label_accelorometer.setFont(font)
self.label_accelorometer.setObjectName("label_accelorometer")
self.vkl_b = QtWidgets.QPushButton(self.centralwidget)
self.vkl_b.setGeometry(QtCore.QRect(1099, 482, 75, 23))
self.vkl_b.setObjectName("vkl_b")
@ -293,44 +293,44 @@ class Ui_MainWindow(object):
self.lcdNumber_9.setStyleSheet("color: rgb(0, 0, 0);")
self.lcdNumber_9.setSegmentStyle(QtWidgets.QLCDNumber.Flat)
self.lcdNumber_9.setObjectName("lcdNumber_9")
self.label_16 = QtWidgets.QLabel(self.centralwidget)
self.label_16.setGeometry(QtCore.QRect(310, 460, 211, 41))
self.label_rgb_illumination = QtWidgets.QLabel(self.centralwidget)
self.label_rgb_illumination.setGeometry(QtCore.QRect(310, 460, 211, 41))
font = QtGui.QFont()
font.setPointSize(14)
font.setBold(True)
font.setWeight(75)
self.label_16.setFont(font)
self.label_16.setObjectName("label_16")
self.label_10 = QtWidgets.QLabel(self.centralwidget)
self.label_10.setGeometry(QtCore.QRect(570, 560, 47, 13))
self.label_10.setObjectName("label_10")
self.label_11 = QtWidgets.QLabel(self.centralwidget)
self.label_11.setGeometry(QtCore.QRect(650, 560, 47, 13))
self.label_11.setObjectName("label_11")
self.label_12 = QtWidgets.QLabel(self.centralwidget)
self.label_12.setGeometry(QtCore.QRect(730, 560, 47, 13))
self.label_12.setObjectName("label_12")
self.label_4 = QtWidgets.QLabel(self.centralwidget)
self.label_4.setGeometry(QtCore.QRect(900, 60, 81, 20))
self.label_rgb_illumination.setFont(font)
self.label_rgb_illumination.setObjectName("label_rgb_illumination")
self.label_x = QtWidgets.QLabel(self.centralwidget)
self.label_x.setGeometry(QtCore.QRect(570, 560, 47, 13))
self.label_x.setObjectName("label_x")
self.label_y = QtWidgets.QLabel(self.centralwidget)
self.label_y.setGeometry(QtCore.QRect(650, 560, 47, 13))
self.label_y.setObjectName("label_y")
self.label_z = QtWidgets.QLabel(self.centralwidget)
self.label_z.setGeometry(QtCore.QRect(730, 560, 47, 13))
self.label_z.setObjectName("label_z")
self.lubel_tumblers = QtWidgets.QLabel(self.centralwidget)
self.lubel_tumblers.setGeometry(QtCore.QRect(900, 70, 81, 20))
font = QtGui.QFont()
font.setFamily("Times New Roman")
font.setPointSize(12)
font.setBold(True)
font.setWeight(75)
self.label_4.setFont(font)
self.label_4.setObjectName("label_4")
self.lubel_tumblers.setFont(font)
self.lubel_tumblers.setObjectName("lubel_tumblers")
self.textEdit = QtWidgets.QTextEdit(self.centralwidget)
self.textEdit.setGeometry(QtCore.QRect(10, 60, 291, 531))
self.textEdit.setObjectName("textEdit")
self.pushButton_5 = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_5.setGeometry(QtCore.QRect(1050, 50, 101, 21))
self.pushButton_5.setObjectName("pushButton_5")
self.pushButton_send_get = QtWidgets.QPushButton(self.centralwidget)
self.pushButton_send_get.setGeometry(QtCore.QRect(1050, 50, 101, 21))
self.pushButton_send_get.setObjectName("pushButton_send_get")
self.lineEdit_2 = QtWidgets.QLineEdit(self.centralwidget)
self.lineEdit_2.setGeometry(QtCore.QRect(790, 40, 241, 21))
self.lineEdit_2.setGeometry(QtCore.QRect(690, 50, 341, 21))
self.lineEdit_2.setObjectName("lineEdit_2")
MainWindow.setCentralWidget(self.centralwidget)
self.menubar = QtWidgets.QMenuBar(MainWindow)
self.menubar.setGeometry(QtCore.QRect(0, 0, 1185, 21))
self.menubar.setGeometry(QtCore.QRect(0, 0, 1185, 22))
self.menubar.setObjectName("menubar")
MainWindow.setMenuBar(self.menubar)
@ -340,39 +340,29 @@ class Ui_MainWindow(object):
def retranslateUi(self, MainWindow):
_translate = QtCore.QCoreApplication.translate
MainWindow.setWindowTitle(_translate("MainWindow", "IoT pgrm v0_1_13"))
self.pushButton.setText(_translate("MainWindow", "SEND Post"))
self.label.setText(_translate("MainWindow", "URL"))
self.label_2.setText(_translate("MainWindow", "Body message"))
self.label_6.setText(_translate("MainWindow", "Температура"))
self.pushButton_send_post.setText(_translate("MainWindow", "SEND Post"))
self.label_url.setText(_translate("MainWindow", "URL"))
self.label_message.setText(_translate("MainWindow", "Body message"))
self.label_temp.setText(_translate("MainWindow", "Температура"))
self.lcdNumber_2.setToolTip(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
self.label_7.setText(_translate("MainWindow", "R"))
self.label_8.setText(_translate("MainWindow", "G"))
self.label_9.setText(_translate("MainWindow", "B"))
self.pushButton_2.setText(_translate("MainWindow", "Вкл"))
self.pushButton_3.setText(_translate("MainWindow", "Вкл"))
self.pushButton_4.setText(_translate("MainWindow", "Вкл"))
self.label_13.setText(_translate("MainWindow", "Давление"))
self.label_14.setText(_translate("MainWindow", "Освещенность"))
self.label_15.setText(_translate("MainWindow", "Освещенность"))
self.label_34.setText(_translate("MainWindow", "Акселлерометр"))
self.label_r.setText(_translate("MainWindow", "R"))
self.label_g.setText(_translate("MainWindow", "G"))
self.label_b.setText(_translate("MainWindow", "B"))
self.pushButton_sensor1.setText(_translate("MainWindow", "Вкл"))
self.pushButton_sensor2.setText(_translate("MainWindow", "Вкл"))
self.pushButton_sensor3.setText(_translate("MainWindow", "Вкл"))
self.label_pressure.setText(_translate("MainWindow", "Давление"))
self.label_illumination.setText(_translate("MainWindow", "Освещенность"))
self.label_illumination2.setText(_translate("MainWindow", "Освещенность"))
self.label_accelorometer.setText(_translate("MainWindow", "Акселлерометр"))
self.vkl_b.setText(_translate("MainWindow", "Вкл"))
self.vikl_b.setText(_translate("MainWindow", "Выкл"))
self.color_b.setText(_translate("MainWindow", "Цвет"))
self.lcdNumber_5.setToolTip(_translate("MainWindow", "<html><head/><body><p><br/></p></body></html>"))
self.label_16.setText(_translate("MainWindow", "Освещенность"))
self.label_10.setText(_translate("MainWindow", "Х"))
self.label_11.setText(_translate("MainWindow", "Y"))
self.label_12.setText(_translate("MainWindow", "Z"))
self.label_4.setText(_translate("MainWindow", "Тумблеры"))
self.pushButton_5.setText(_translate("MainWindow", "SEND Get request"))
self.label_rgb_illumination.setText(_translate("MainWindow", "Освещенность"))
self.label_x.setText(_translate("MainWindow", "Х"))
self.label_y.setText(_translate("MainWindow", "Y"))
self.label_z.setText(_translate("MainWindow", "Z"))
self.lubel_tumblers.setText(_translate("MainWindow", "Тумблеры"))
self.pushButton_send_get.setText(_translate("MainWindow", "SEND Get request"))
import Res_rc
if __name__ == "__main__":
import sys
app = QtWidgets.QApplication(sys.argv)
MainWindow = QtWidgets.QMainWindow()
ui = Ui_MainWindow()
ui.setupUi(MainWindow)
MainWindow.show()
sys.exit(app.exec_())

View File

@ -22,7 +22,7 @@ label_26 = label_sensor_megalka2
label_29 = label_sensor_megalka3
pushButton = pushButton_send_post
pushButton_5 = pushButton_send_get_request
pushButton_5 = pushButton_send_get
pushButton_2 = pushButton_sensor1
pushButton_3 = pushButton_sensor2
pushButton_4 = pushButton_sensor3