From 1d3c0630ce1308bf269952d99bde86662f99fcf7 Mon Sep 17 00:00:00 2001 From: nuprivetepta Date: Sat, 10 Dec 2022 18:55:02 +0300 Subject: [PATCH 1/6] a_create done. --- .../a_create_ui.py" | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_create_ui.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_create_ui.py" index 892d4d7..5d9925d 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_create_ui.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_create_ui.py" @@ -6,7 +6,7 @@ class Window(QtWidgets.QWidget): def __init__(self, parent=None): super().__init__(parent) - # TODO Вызовите метод для инициализации интерфейса + self.initUi() def initUi(self) -> None: """ @@ -15,39 +15,39 @@ def initUi(self) -> None: :return: None """ - labelLogin = ... # TODO Создайте виджет QLabel с текстом "Логин" - labelRegistration = ... # TODO Создайте виджет QLabel с текстом "Регистрация" + labelLogin = QtWidgets.QLabel("Логин") + labelRegistration = QtWidgets.QLabel("Регистрация") - self.lineEditLogin = ... # TODO создайте виджет QLineEdit - self.lineEditLogin # TODO добавьте placeholderText "Введите логин" с помощью метода .setPlaceholderText() - self.lineEditPassword = ... # TODO создайте виджет QLineEdit - self.lineEditPassword # TODO добавьте placeholderText "Введите пароль" - self.lineEditPassword # TODO установите ограничение видимости вводимых знаков с помощью метода .setEchoMode() + self.lineEditLogin = QtWidgets.QLineEdit() + self.lineEditLogin.setPlaceholderText("Введите логин") + self.lineEditPassword = QtWidgets.QLineEdit() + self.lineEditPassword.setPlaceholderText("Введите пароль") + self.lineEditPassword.setEchoMode(QtWidgets.QLineEdit.EchoMode.Password) - self.pushButtonLogin = ... # TODO создайте виджет QPushButton - self.pushButtonLogin # TODO установите текст "Войти" с помощью метода setText() + self.pushButtonLogin = QtWidgets.QPushButton() + self.pushButtonLogin.setText("Войти") - self.pushButtonRegistration = ... # TODO создайте виджет QPushButton - self.pushButtonRegistration # TODO установите текст "Регистрация" с помощью метода setText() + self.pushButtonRegistration = QtWidgets.QPushButton() + self.pushButtonRegistration.setText("Регистрация") - layoutLogin = ... # TODO Создайте QHBoxLayout - layoutLogin # TODO с помощью метода .addWidget() добавьте labelLogin - layoutLogin # TODO с помощью метода .addWidget() добавьте self.lineEditLogin + layoutLogin = QtWidgets.QHBoxLayout() + layoutLogin.addWidget(labelLogin) + layoutLogin.addWidget(self.lineEditLogin) - layoutPassword = ... # TODO Создайте QHBoxLayout - layoutPassword # TODO с помощью метода .addWidget() добавьте labelRegistration - layoutPassword # TODO с помощью метода .addWidget() добавьте self.lineEditPassword + layoutPassword = QtWidgets.QHBoxLayout() + layoutPassword.addWidget(labelRegistration) + layoutPassword.addWidget(self.lineEditPassword) - layoutButtons = ... # TODO Создайте QHBoxLayout - layoutButtons # TODO с помощью метода .addWidget() добавьте self.pushButtonLogin - layoutButtons # TODO с помощью метода .addWidget() добавьте self.pushButtonRegistration + layoutButtons = QtWidgets.QHBoxLayout() + layoutButtons.addWidget(self.pushButtonLogin) + layoutButtons.addWidget(self.pushButtonRegistration) - layoutMain = ... # TODO Создайте QVBoxLayout - layoutMain # TODO с помощью метода .addLayout() добавьте layoutLogin - layoutMain # TODO с помощью метода .addLayout() добавьте layoutPassword - layoutMain # TODO с помощью метода .addLayout() добавьте layoutButtons + layoutMain = QtWidgets.QVBoxLayout() + layoutMain.addLayout(layoutLogin) + layoutMain.addLayout(layoutPassword) + layoutMain.addLayout(layoutButtons) - self # TODO с помощью метода setLayout установите layoutMain на основной виджет + self.setLayout(layoutMain) if __name__ == "__main__": From 16a173ed7ed3e6df44b88c7a7e3cbd24e88588c2 Mon Sep 17 00:00:00 2001 From: nuprivetepta Date: Sat, 10 Dec 2022 21:58:04 +0300 Subject: [PATCH 2/6] b_add_signals done. --- .../b_add_signals.py" | 127 ++++++++++++++++-- 1 file changed, 114 insertions(+), 13 deletions(-) diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/b_add_signals.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/b_add_signals.py" index ba38dff..579af55 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/b_add_signals.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/b_add_signals.py" @@ -10,6 +10,8 @@ def __init__(self, parent=None): self.initUi() + self.initSignals() + def initUi(self) -> None: """ Инициализация интерфейса @@ -131,19 +133,19 @@ def initSignals(self) -> None: :return: None """ - self.pushButtonComboBox # TODO подключить слот для вывода текста из comboBox в plainTextEditLog при нажатии на кнопку + self.pushButtonComboBox.clicked.connect(self.onPushButtonComboBoxClicked) self.pushButtonLineEdit.clicked.connect(self.onPushButtonLineEditClicked) - self.pushButtonTextEdit # TODO подключить слот для вывода текста из textEdit в plainTextEditLog при нажатии на кнопку - self.pushButtonPlainTextEdit # TODO подключить слот для вывода текста из plaineTextEdit в plainTextEditLog при нажатии на кнопку - self.pushButtonSpinBox # TODO подключить слот для вывода значения из spinBox в plainTextEditLog при нажатии на кнопку - self.pushButtonDoubleSpinBox # TODO подключить слот для вывода значения из doubleSpinBox в plainTextEditLog при нажатии на кнопку - self.pushButtonTimeEdit # TODO подключить слот для вывода времени из timeEdit в plainTextEditLog при нажатии на кнопку - self.pushButtonDateTimeEdit # TODO подключить слот для вывода времени из dateTimeEdit в plainTextEditLog при нажатии на кнопку - self.pushButtonClearLog # TODO подключить слот для очистки plainTextEditLog при нажатии на кнопку - - self.comboBox # TODO подключить слот для вывода текста в plainTextEditLog при изменении выбранного элемента в comboBox - self.spinBox # TODO подключить слот для вывода значения в plainTextEditLog при изменении значения в spinBox - self.dateTimeEdit # TODO подключить слот для вывода датывремени в plainTextEditLog при изменении датывремени в dateTimeEdit + self.pushButtonTextEdit.clicked.connect(self.onPushButtonTextEditClicked) + self.pushButtonPlainTextEdit.clicked.connect(self.onPushButtonplainTextEditClicked) + self.pushButtonSpinBox.clicked.connect(self.onPushButtonSpinBoxClicked) + self.pushButtonDoubleSpinBox.clicked.connect(self.onPushButtonDoubleSpinBoxClicked) + self.pushButtonTimeEdit.clicked.connect(self.onPushButtonTimeEditClicked) + self.pushButtonDateTimeEdit.clicked.connect(self.onPushButtonDateTimeEditClicked) + self.pushButtonClearLog.clicked.connect(self.onPushButtonClearLog) + + self.comboBox.currentTextChanged.connect(self.ComboBoxChange) + self.spinBox.valueChanged.connect(self.SpinBoxChange) + self.dateTimeEdit.dateTimeChanged.connect(self.DateTimeEditChange) # slots -------------------------------------------------------------- def onPushButtonLineEditClicked(self) -> None: @@ -155,7 +157,106 @@ def onPushButtonLineEditClicked(self) -> None: self.plainTextEditLog.setPlainText(self.lineEdit.text()) - # TODO Самостоятельная реализация слотов для сигналов + def onPushButtonComboBoxClicked(self) -> None: + """ + Обработка сигнала clicked для кнопки PushButtonComboBox + + :return: None + """ + + self.plainTextEditLog.setPlainText(self.comboBox.currentText()) + + def onPushButtonTextEditClicked(self) -> None: + """ + Обработка сигнала clicked для кнопки PushButtonTextEdit + + :return: None + """ + + self.plainTextEditLog.setPlainText(self.textEdit.toPlainText()) + + + def onPushButtonplainTextEditClicked(self) -> None: + """ + Обработка сигнала clicked для кнопки PushButtonplainTextEdit + + :return: None + """ + + self.plainTextEditLog.setPlainText(self.plainTextEdit.toPlainText()) + + def onPushButtonSpinBoxClicked(self) -> None: + """ + Обработка сигнала clicked для кнопки PushButtonSpinBox + + :return: None + """ + + self.plainTextEditLog.setPlainText(self.spinBox.text()) + + def onPushButtonDoubleSpinBoxClicked(self) -> None: + """ + Обработка сигнала clicked для кнопки PushButtonDoubleSpinBox + + :return: None + """ + + self.plainTextEditLog.setPlainText(self.doubleSpinBox.text()) + + def onPushButtonTimeEditClicked(self) -> None: + """ + Обработка сигнала clicked для кнопки PushButtonTimeEdit + + :return: None + """ + + self.plainTextEditLog.setPlainText(self.timeEdit.text()) + + def onPushButtonDateTimeEditClicked(self) -> None: + """ + Обработка сигнала clicked для кнопки PushButtonDateTimeEdit + + :return: None + """ + + self.plainTextEditLog.setPlainText(self.dateTimeEdit.text()) + + def onPushButtonClearLog(self) -> None: + """ + Обработка сигнала clicked для кнопки PushButtonClearLog + + :return: None + """ + + self.plainTextEditLog.clear() + + + def ComboBoxChange(self) -> None: + """ + Обработка сигнала currentTextChanged для ComboBox + + :return: None + """ + + self.plainTextEditLog.setPlainText(self.comboBox.currentText()) + + def SpinBoxChange(self) -> None: + """ + Обработка сигнала valueChanged для SpinBox + + :return: None + """ + + self.plainTextEditLog.setPlainText(self.spinBox.text()) + + def DateTimeEditChange(self) -> None: + """ + Обработка сигнала DateTimeChanged для DateTimeEdit + + :return: None + """ + + self.plainTextEditLog.setPlainText(self.dateTimeEdit.text()) if __name__ == "__main__": From 4f4181b80227feb712a8a4ad66b75ec4d94ccc63 Mon Sep 17 00:00:00 2001 From: nuprivetepta Date: Thu, 15 Dec 2022 18:03:36 +0300 Subject: [PATCH 3/6] before 4th practice. --- aa.pycd | 3 + .../a_create_ui.py" | 5 +- .../b_add_signals.py" | 1 + .../c_sgs.py" | 162 ++++++++++++++++++ .../c_signals_events.py" | 4 +- 5 files changed, 173 insertions(+), 2 deletions(-) create mode 100644 aa.pycd create mode 100644 "scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_sgs.py" diff --git a/aa.pycd b/aa.pycd new file mode 100644 index 0000000..2c75814 --- /dev/null +++ b/aa.pycd @@ -0,0 +1,3 @@ +Error: File 'aa.ui' is not valid + +while executing '/Users/rodionbelyaev/PycharmProjects/pythonProject/venv/lib/python3.10/site-packages/PySide6/Qt/libexec/uic -g python aa.ui /Users/rodionbelyaev/Documents/PyCharm/DevPyQtRodbely/scripts/Практика 2/b_Самостоятельная + домашняя работа/ui' diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_create_ui.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_create_ui.py" index 5d9925d..33b0ee6 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_create_ui.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_create_ui.py" @@ -14,9 +14,12 @@ def initUi(self) -> None: :return: None """ + self.setFixedSize(250, 150) labelLogin = QtWidgets.QLabel("Логин") - labelRegistration = QtWidgets.QLabel("Регистрация") + labelLogin.setMinimumWidth(80) + labelRegistration = QtWidgets.QLabel("Пароль") + labelRegistration.setMinimumWidth(80) self.lineEditLogin = QtWidgets.QLineEdit() self.lineEditLogin.setPlaceholderText("Введите логин") diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/b_add_signals.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/b_add_signals.py" index 579af55..3773a95 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/b_add_signals.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/b_add_signals.py" @@ -144,6 +144,7 @@ def initSignals(self) -> None: self.pushButtonClearLog.clicked.connect(self.onPushButtonClearLog) self.comboBox.currentTextChanged.connect(self.ComboBoxChange) + # self.comboBox.currentTextChanged.connect(lambda x: self.plainTextEditLog.setPlainText(str(x))) self.spinBox.valueChanged.connect(self.SpinBoxChange) self.dateTimeEdit.dateTimeChanged.connect(self.DateTimeEditChange) diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_sgs.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_sgs.py" new file mode 100644 index 0000000..3bd7548 --- /dev/null +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_sgs.py" @@ -0,0 +1,162 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'c_signals_events.ui' +## +## Created by: Qt User Interface Compiler version 6.4.0 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QApplication, QGroupBox, QHBoxLayout, QLabel, + QPlainTextEdit, QPushButton, QSizePolicy, QSpacerItem, + QSpinBox, QVBoxLayout, QWidget) + +class Ui_Form(object): + def setupUi(self, Form): + if not Form.objectName(): + Form.setObjectName(u"Form") + Form.resize(837, 578) + Form.setMinimumSize(QSize(700, 450)) + self.horizontalLayout = QHBoxLayout(Form) + self.horizontalLayout.setObjectName(u"horizontalLayout") + self.groupBox_2 = QGroupBox(Form) + self.groupBox_2.setObjectName(u"groupBox_2") + self.verticalLayout_3 = QVBoxLayout(self.groupBox_2) + self.verticalLayout_3.setObjectName(u"verticalLayout_3") + self.horizontalLayout_6 = QHBoxLayout() + self.horizontalLayout_6.setObjectName(u"horizontalLayout_6") + self.pushButtonLT = QPushButton(self.groupBox_2) + self.pushButtonLT.setObjectName(u"pushButtonLT") + self.pushButtonLT.setMinimumSize(QSize(0, 50)) + + self.horizontalLayout_6.addWidget(self.pushButtonLT) + + self.pushButtonRT = QPushButton(self.groupBox_2) + self.pushButtonRT.setObjectName(u"pushButtonRT") + self.pushButtonRT.setMinimumSize(QSize(0, 50)) + + self.horizontalLayout_6.addWidget(self.pushButtonRT) + + + self.verticalLayout_3.addLayout(self.horizontalLayout_6) + + self.pushButtonCenter = QPushButton(self.groupBox_2) + self.pushButtonCenter.setObjectName(u"pushButtonCenter") + self.pushButtonCenter.setMinimumSize(QSize(0, 50)) + + self.verticalLayout_3.addWidget(self.pushButtonCenter) + + self.horizontalLayout_5 = QHBoxLayout() + self.horizontalLayout_5.setObjectName(u"horizontalLayout_5") + self.pushButtonLB = QPushButton(self.groupBox_2) + self.pushButtonLB.setObjectName(u"pushButtonLB") + self.pushButtonLB.setMinimumSize(QSize(0, 50)) + + self.horizontalLayout_5.addWidget(self.pushButtonLB) + + self.pushButtonRB = QPushButton(self.groupBox_2) + self.pushButtonRB.setObjectName(u"pushButtonRB") + self.pushButtonRB.setMinimumSize(QSize(0, 50)) + + self.horizontalLayout_5.addWidget(self.pushButtonRB) + + + self.verticalLayout_3.addLayout(self.horizontalLayout_5) + + self.groupBox_3 = QGroupBox(self.groupBox_2) + self.groupBox_3.setObjectName(u"groupBox_3") + self.verticalLayout_2 = QVBoxLayout(self.groupBox_3) + self.verticalLayout_2.setObjectName(u"verticalLayout_2") + self.horizontalLayout_3 = QHBoxLayout() + self.horizontalLayout_3.setObjectName(u"horizontalLayout_3") + self.label = QLabel(self.groupBox_3) + self.label.setObjectName(u"label") + + self.horizontalLayout_3.addWidget(self.label) + + self.spinBoxX = QSpinBox(self.groupBox_3) + self.spinBoxX.setObjectName(u"spinBoxX") + + self.horizontalLayout_3.addWidget(self.spinBoxX) + + self.label_2 = QLabel(self.groupBox_3) + self.label_2.setObjectName(u"label_2") + + self.horizontalLayout_3.addWidget(self.label_2) + + self.spinBoxY = QSpinBox(self.groupBox_3) + self.spinBoxY.setObjectName(u"spinBoxY") + + self.horizontalLayout_3.addWidget(self.spinBoxY) + + + self.verticalLayout_2.addLayout(self.horizontalLayout_3) + + self.pushButtonMoveCoords = QPushButton(self.groupBox_3) + self.pushButtonMoveCoords.setObjectName(u"pushButtonMoveCoords") + + self.verticalLayout_2.addWidget(self.pushButtonMoveCoords) + + + self.verticalLayout_3.addWidget(self.groupBox_3) + + self.verticalSpacer = QSpacerItem(20, 40, QSizePolicy.Minimum, QSizePolicy.Expanding) + + self.verticalLayout_3.addItem(self.verticalSpacer) + + + self.horizontalLayout.addWidget(self.groupBox_2) + + self.verticalLayout = QVBoxLayout() + self.verticalLayout.setObjectName(u"verticalLayout") + self.groupBox = QGroupBox(Form) + self.groupBox.setObjectName(u"groupBox") + self.horizontalLayout_2 = QHBoxLayout(self.groupBox) + self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") + self.plainTextEdit = QPlainTextEdit(self.groupBox) + self.plainTextEdit.setObjectName(u"plainTextEdit") + self.plainTextEdit.setMinimumSize(QSize(200, 0)) + + self.horizontalLayout_2.addWidget(self.plainTextEdit) + + + self.verticalLayout.addWidget(self.groupBox) + + self.pushButtonGetData = QPushButton(Form) + self.pushButtonGetData.setObjectName(u"pushButtonGetData") + + self.verticalLayout.addWidget(self.pushButtonGetData) + + + self.horizontalLayout.addLayout(self.verticalLayout) + + + self.retranslateUi(Form) + + QMetaObject.connectSlotsByName(Form) + # setupUi + + def retranslateUi(self, Form): + Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None)) + self.groupBox_2.setTitle(QCoreApplication.translate("Form", u"\u041f\u0435\u0440\u0435\u043c\u0435\u0449\u0435\u043d\u0438\u0435 \u043e\u043a\u043d\u0430:", None)) + self.pushButtonLT.setText(QCoreApplication.translate("Form", u"\u041b\u0435\u0432\u043e/\u0412\u0435\u0440\u0445", None)) + self.pushButtonRT.setText(QCoreApplication.translate("Form", u"\u041f\u0440\u0430\u0432\u043e/\u0412\u0435\u0440\u0445", None)) + self.pushButtonCenter.setText(QCoreApplication.translate("Form", u"\u0426\u0435\u043d\u0442\u0440", None)) + self.pushButtonLB.setText(QCoreApplication.translate("Form", u"\u041b\u0435\u0432\u043e/\u041d\u0438\u0437", None)) + self.pushButtonRB.setText(QCoreApplication.translate("Form", u"\u041f\u0440\u0430\u0432\u043e/\u041d\u0438\u0437", None)) + self.groupBox_3.setTitle(QCoreApplication.translate("Form", u"\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c \u0432 \u043a\u043e\u043e\u0440\u0434\u0438\u043d\u0430\u0442\u044b:", None)) + self.label.setText(QCoreApplication.translate("Form", u"X", None)) + self.label_2.setText(QCoreApplication.translate("Form", u"Y", None)) + self.pushButtonMoveCoords.setText(QCoreApplication.translate("Form", u"\u041f\u0435\u0440\u0435\u043c\u0435\u0441\u0442\u0438\u0442\u044c", None)) + self.groupBox.setTitle(QCoreApplication.translate("Form", u"\u041b\u043e\u0433:", None)) + self.pushButtonGetData.setText(QCoreApplication.translate("Form", u"\u041f\u043e\u043b\u0443\u0447\u0438\u0442\u044c \u0434\u0430\u043d\u043d\u044b\u0435 \u043e\u043a\u043d\u0430", None)) + # retranslateUi + diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" index 0ff6bd2..7b8c1d5 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" @@ -19,7 +19,7 @@ * При перемещении окна выводить его старую и новую позицию * При изменении размера окна выводить его новый размер """ - +from c_sgs import Ui_Form from PySide6 import QtWidgets @@ -28,6 +28,8 @@ class Window(QtWidgets.QWidget): def __init__(self, parent=None): super().__init__(parent) + self.ui = Ui_Form() + self.ui.setupUi(self) if __name__ == "__main__": From 78d808ee12a2602915168a1241b58d55f0a1752b Mon Sep 17 00:00:00 2001 From: nuprivetlepta Date: Thu, 15 Dec 2022 21:16:34 +0300 Subject: [PATCH 4/6] Practice 2 done. --- .../d_eventfilter_settings.py" | 53 ++++++++++++- .../ui/d_ui.py" | 74 +++++++++++++++++++ .../a_paint_rect.py" | 2 +- 3 files changed, 126 insertions(+), 3 deletions(-) create mode 100644 "scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/d_ui.py" diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/d_eventfilter_settings.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/d_eventfilter_settings.py" index 9af747a..c4d5b91 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/d_eventfilter_settings.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/d_eventfilter_settings.py" @@ -17,14 +17,63 @@ и значение LCDNumber в QSettings, при перезапуске программы выводить в него соответствующие значения """ - -from PySide6 import QtWidgets +from ui.d_ui import Ui_Form +from PySide6 import QtWidgets, QtGui, QtCore class Window(QtWidgets.QWidget): def __init__(self, parent=None): super().__init__(parent) + self.ui = Ui_Form() + self.ui.setupUi(self) + self.initSignals() + self.ui.comboBox.addItems(["oct", "hex", "bin", "dec"]) + self.settings = QtCore.QSettings("app") + self.ui.comboBox.setCurrentText(self.settings.value("valueCombo", "dec")) + + def initSignals(self): + self.ui.dial.valueChanged.connect(self.setDataFromDial) + self.ui.horizontalSlider.valueChanged.connect(self.setDataFromSlider) + self.ui.comboBox.currentTextChanged.connect(self.setLCDMode) + + def setDataFromDial(self): + self.ui.lcdNumber.display(self.ui.dial.value()) + self.ui.horizontalSlider.setValue(self.ui.dial.value()) + + def setDataFromSlider(self): + self.ui.lcdNumber.display(self.ui.horizontalSlider.value()) + self.ui.dial.setValue(self.ui.horizontalSlider.value()) + + def setLCDMode(self): + if self.ui.comboBox.currentText() == "hex": + self.ui.lcdNumber.setHexMode() + elif self.ui.comboBox.currentText() == "oct": + self.ui.lcdNumber.setOctMode() + elif self.ui.comboBox.currentText() == "bin": + self.ui.lcdNumber.setBinMode() + elif self.ui.comboBox.currentText() == "dec": + self.ui.lcdNumber.setDecMode() + + def keyPressEvent(self, event: QtGui.QKeyEvent) -> None: + if event.text() == "+": + self.ui.dial.setValue(self.ui.dial.value() + 1) + elif event.text() == "-": + self.ui.dial.setValue(self.ui.dial.value() - 1) + + def closeEvent(self, event: QtGui.QCloseEvent) -> None: + """ + Событие закрытия окна + + :param event: QtGui.QCloseEvent + :return: None + """ + + self.settings.setValue( + "valueCombo", self.ui.comboBox.currentText() + ) + + if __name__ == "__main__": diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/d_ui.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/d_ui.py" new file mode 100644 index 0000000..3054525 --- /dev/null +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/d_ui.py" @@ -0,0 +1,74 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'd_eventfilter_settings.ui' +## +## Created by: Qt User Interface Compiler version 6.4.0 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QApplication, QComboBox, QDial, QHBoxLayout, + QLCDNumber, QSizePolicy, QSlider, QVBoxLayout, + QWidget) + +class Ui_Form(object): + def setupUi(self, Form): + if not Form.objectName(): + Form.setObjectName(u"Form") + Form.resize(241, 179) + self.verticalLayout_2 = QVBoxLayout(Form) + self.verticalLayout_2.setObjectName(u"verticalLayout_2") + self.horizontalLayout = QHBoxLayout() + self.horizontalLayout.setObjectName(u"horizontalLayout") + self.dial = QDial(Form) + self.dial.setObjectName(u"dial") + sizePolicy = QSizePolicy(QSizePolicy.Preferred, QSizePolicy.Preferred) + sizePolicy.setHorizontalStretch(0) + sizePolicy.setVerticalStretch(0) + sizePolicy.setHeightForWidth(self.dial.sizePolicy().hasHeightForWidth()) + self.dial.setSizePolicy(sizePolicy) + + self.horizontalLayout.addWidget(self.dial) + + self.verticalLayout = QVBoxLayout() + self.verticalLayout.setObjectName(u"verticalLayout") + self.comboBox = QComboBox(Form) + self.comboBox.setObjectName(u"comboBox") + + self.verticalLayout.addWidget(self.comboBox) + + self.lcdNumber = QLCDNumber(Form) + self.lcdNumber.setObjectName(u"lcdNumber") + + self.verticalLayout.addWidget(self.lcdNumber) + + + self.horizontalLayout.addLayout(self.verticalLayout) + + + self.verticalLayout_2.addLayout(self.horizontalLayout) + + self.horizontalSlider = QSlider(Form) + self.horizontalSlider.setObjectName(u"horizontalSlider") + self.horizontalSlider.setOrientation(Qt.Horizontal) + + self.verticalLayout_2.addWidget(self.horizontalSlider) + + + self.retranslateUi(Form) + + QMetaObject.connectSlotsByName(Form) + # setupUi + + def retranslateUi(self, Form): + Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None)) + # retranslateUi + diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 4/a_\320\237\320\276\320\262\321\202\320\276\321\200\320\265\320\275\320\270\320\265 + \320\240\320\260\320\267\320\261\320\276\321\200/a_paint_rect.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 4/a_\320\237\320\276\320\262\321\202\320\276\321\200\320\265\320\275\320\270\320\265 + \320\240\320\260\320\267\320\261\320\276\321\200/a_paint_rect.py" index 96fec16..9336439 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 4/a_\320\237\320\276\320\262\321\202\320\276\321\200\320\265\320\275\320\270\320\265 + \320\240\320\260\320\267\320\261\320\276\321\200/a_paint_rect.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 4/a_\320\237\320\276\320\262\321\202\320\276\321\200\320\265\320\275\320\270\320\265 + \320\240\320\260\320\267\320\261\320\276\321\200/a_paint_rect.py" @@ -29,4 +29,4 @@ def mousePressEvent(self, event: QtGui.QMouseEvent) -> None: myapp = MyDrawRect() myapp.show() - app.exec_() + app.exec() From c4d7113b4098a15a407e9df246db45c20c83a028 Mon Sep 17 00:00:00 2001 From: nuprivetepta Date: Thu, 22 Dec 2022 19:15:20 +0300 Subject: [PATCH 5/6] Tried to do c_signals_events --- .../c_signals_events.py" | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" index 7b8c1d5..963363c 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" @@ -21,7 +21,7 @@ """ from c_sgs import Ui_Form -from PySide6 import QtWidgets +from PySide6 import QtWidgets, QtCore class Window(QtWidgets.QWidget): @@ -30,6 +30,21 @@ def __init__(self, parent=None): super().__init__(parent) self.ui = Ui_Form() self.ui.setupUi(self) + self.initSignals() + + def initSignals(self): + self.ui.pushButtonLT.clicked.connect(self.GoTopLeft) + self.ui.pushButtonRT.clicked.connect(self.GoTopRight) + + def GoTopLeft(self): + self.move(0, 0) + + def GoTopRight(self): + self.move() + + + + if __name__ == "__main__": From 946aa4564286d346ed8d1e375706d1fc26fe5144 Mon Sep 17 00:00:00 2001 From: nuprivetlepta Date: Thu, 22 Dec 2022 20:53:20 +0300 Subject: [PATCH 6/6] =?UTF-8?q?=D0=A1=D0=B4=D0=B5=D0=BB=D0=B0=D0=BB=20ui?= =?UTF-8?q?=20=D0=B4=D0=BB=D1=8F=20=D0=B2=D0=B8=D0=B4=D0=B6=D0=B5=D1=82?= =?UTF-8?q?=D0=B0=20=D0=BF=D0=BE=D0=B3=D0=BE=D0=B4=D1=8B.=20=D0=9D=D1=83?= =?UTF-8?q?=D0=B6=D0=BD=D0=BE=20=D0=B4=D0=BE=D0=B4=D0=B5=D0=BB=D0=B0=D1=82?= =?UTF-8?q?=D1=8C=20=D1=82=D1=80=D0=B5=D1=82=D1=8C=D1=8E=20=D0=BF=D1=80?= =?UTF-8?q?=D0=B0=D0=BA=D1=82=D0=B8=D0=BA=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../c_signals_events.py" | 2 +- .../a_threads.py" | 5 +- .../c_weatherapi_widget.py" | 5 +- .../ui/weather.py" | 85 +++++++++++++++++++ .../ui/weather.ui" | 72 ++++++++++++++++ 5 files changed, 164 insertions(+), 5 deletions(-) create mode 100644 "scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/weather.py" create mode 100644 "scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/weather.ui" diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" index 963363c..7a62143 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 2/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_signals_events.py" @@ -40,7 +40,7 @@ def GoTopLeft(self): self.move(0, 0) def GoTopRight(self): - self.move() + self.move(0, 0) diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_threads.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_threads.py" index 7c72e80..bc57aa6 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_threads.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/a_threads.py" @@ -7,13 +7,12 @@ import psutil from PySide6 import QtCore - class SystemInfo(QtCore.QThread): - systemInfoReceived = ... # TODO Создайте экземпляр класса Signal и передайте ему в конструктор тип данных передаваемого значения (в текущем случае list) + systemInfoReceived = QtCore.Signal(list) # TODO Создайте экземпляр класса Signal и передайте ему в конструктор тип данных передаваемого значения (в текущем случае list) def __init__(self, parent=None): super().__init__(parent) - ... # TODO создайте атрибут класса self.delay = None, для управлением задержкой получения данных + self.delay = None # TODO создайте атрибут класса self.delay = None, для управлением задержкой получения данных def run(self) -> None: # TODO переопределить метод run if self.delay is None: # TODO Если задержка не передана в поток перед его запуском diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_weatherapi_widget.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_weatherapi_widget.py" index b004a14..cf5dd88 100644 --- "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_weatherapi_widget.py" +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/c_weatherapi_widget.py" @@ -1,4 +1,4 @@ -""" +d""" Реализовать виджет, который будет работать с потоком WeatherHandler из модуля a_threads Создавать форму можно как в ручную, так и с помощью программы Designer @@ -9,3 +9,6 @@ 3. поле для вывода информации о погоде в указанных координатах 4. поток необходимо запускать и останавливать при нажатие на кнопку """ +from PySide6 import QtCore, QtWidgets +from ui.weather import Ui_Form +from a_threads import WeatherHandler \ No newline at end of file diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/weather.py" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/weather.py" new file mode 100644 index 0000000..862eaf0 --- /dev/null +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/weather.py" @@ -0,0 +1,85 @@ +# -*- coding: utf-8 -*- + +################################################################################ +## Form generated from reading UI file 'weather.ui' +## +## Created by: Qt User Interface Compiler version 6.4.0 +## +## WARNING! All changes made in this file will be lost when recompiling UI file! +################################################################################ + +from PySide6.QtCore import (QCoreApplication, QDate, QDateTime, QLocale, + QMetaObject, QObject, QPoint, QRect, + QSize, QTime, QUrl, Qt) +from PySide6.QtGui import (QBrush, QColor, QConicalGradient, QCursor, + QFont, QFontDatabase, QGradient, QIcon, + QImage, QKeySequence, QLinearGradient, QPainter, + QPalette, QPixmap, QRadialGradient, QTransform) +from PySide6.QtWidgets import (QApplication, QHBoxLayout, QLabel, QLineEdit, + QSizePolicy, QSpacerItem, QSpinBox, QVBoxLayout, + QWidget) + +class Ui_Form(object): + def setupUi(self, Form): + if not Form.objectName(): + Form.setObjectName(u"Form") + Form.resize(487, 459) + self.verticalLayout = QVBoxLayout(Form) + self.verticalLayout.setObjectName(u"verticalLayout") + self.horizontalLayout = QHBoxLayout() + self.horizontalLayout.setObjectName(u"horizontalLayout") + self.label_long = QLabel(Form) + self.label_long.setObjectName(u"label_long") + + self.horizontalLayout.addWidget(self.label_long) + + self.lineEdit = QLineEdit(Form) + self.lineEdit.setObjectName(u"lineEdit") + + self.horizontalLayout.addWidget(self.lineEdit) + + self.label_lat = QLabel(Form) + self.label_lat.setObjectName(u"label_lat") + + self.horizontalLayout.addWidget(self.label_lat) + + self.lineEdit_2 = QLineEdit(Form) + self.lineEdit_2.setObjectName(u"lineEdit_2") + + self.horizontalLayout.addWidget(self.lineEdit_2) + + + self.verticalLayout.addLayout(self.horizontalLayout) + + self.horizontalLayout_2 = QHBoxLayout() + self.horizontalLayout_2.setObjectName(u"horizontalLayout_2") + self.spinBox = QSpinBox(Form) + self.spinBox.setObjectName(u"spinBox") + + self.horizontalLayout_2.addWidget(self.spinBox) + + self.horizontalSpacer = QSpacerItem(40, 20, QSizePolicy.Expanding, QSizePolicy.Minimum) + + self.horizontalLayout_2.addItem(self.horizontalSpacer) + + + self.verticalLayout.addLayout(self.horizontalLayout_2) + + self.label_out = QLabel(Form) + self.label_out.setObjectName(u"label_out") + + self.verticalLayout.addWidget(self.label_out) + + + self.retranslateUi(Form) + + QMetaObject.connectSlotsByName(Form) + # setupUi + + def retranslateUi(self, Form): + Form.setWindowTitle(QCoreApplication.translate("Form", u"Form", None)) + self.label_long.setText(QCoreApplication.translate("Form", u"\u0414\u043e\u043b\u0433\u043e\u0442\u0430", None)) + self.label_lat.setText(QCoreApplication.translate("Form", u"\u0428\u0438\u0440\u043e\u0442\u0430", None)) + self.label_out.setText("") + # retranslateUi + diff --git "a/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/weather.ui" "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/weather.ui" new file mode 100644 index 0000000..0617571 --- /dev/null +++ "b/scripts/\320\237\321\200\320\260\320\272\321\202\320\270\320\272\320\260 3/b_\320\241\320\260\320\274\320\276\321\201\321\202\320\276\321\217\321\202\320\265\320\273\321\214\320\275\320\260\321\217 + \320\264\320\276\320\274\320\260\321\210\320\275\321\217\321\217 \321\200\320\260\320\261\320\276\321\202\320\260/ui/weather.ui" @@ -0,0 +1,72 @@ + + + Form + + + + 0 + 0 + 487 + 459 + + + + Form + + + + + + + + Долгота + + + + + + + + + + Широта + + + + + + + + + + + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + + + + + + + + + + +