diff --git a/PycharmProjects/3.5.1 auto/visual.py b/PycharmProjects/3.5.1 auto/visual.py index 7128adf..279f911 100644 --- a/PycharmProjects/3.5.1 auto/visual.py +++ b/PycharmProjects/3.5.1 auto/visual.py @@ -1,20 +1,25 @@ import sys import random from PySide6 import QtCore, QtWidgets, QtGui -from win32api import GetSystemMetrics +import time -class MyWidget(QtWidgets.QWidget): +class TitleScreen(QtWidgets.QWidget): def __init__(self): super().__init__() self.q = QtGui.QScreen.availableGeometry(QtWidgets.QApplication.primaryScreen()) + self.part1 = Part1() + self.part2 = Part2() self.button = QtWidgets.QPushButton(self) self.button.setGeometry(QtCore.QRect(20, 20, 40, 40)) self.button.setText("Esc") self.text = QtWidgets.QLabel(self) - self.text.setText("

Лабораторная работа 3.5.1

Исследование плазмы газового разряда

") - self.text.setGeometry(QtCore.QRect(self.q.width() // 4, self.q.height() // 2 - 40, 300, 80)) + self.text.setText( + "

Лабораторная " + "работа 3.5.1

Исследование плазмы газового " + "разряда

") + self.text.setGeometry(QtCore.QRect(self.q.width() // 3 - 250, self.q.height() // 2 - 50, 500, 100)) self.vline = QtWidgets.QFrame(self) self.vline.setFrameShape(QtWidgets.QFrame.VLine) self.vline.setGeometry(QtCore.QRect(2 * self.q.width() // 3, 0, 10, self.q.height() + 40)) @@ -23,11 +28,15 @@ class MyWidget(QtWidgets.QWidget): self.hline.setGeometry(QtCore.QRect(2 * self.q.width() // 3 + 5, self.q.height() // 2, self.q.width() // 3, 40)) self.label1 = QtWidgets.QLabel(self) self.label1.setText( - "

ЧАСТЬ I

Вольт-амперная характеристика газового разряда

") + "

ЧАСТЬ " + "I

Вольт-амперная характеристика газового " + "разряда

") self.label1.setGeometry(QtCore.QRect(5 * self.q.width() // 6 - 150, self.q.height() // 4 - 40, 300, 80)) self.label2 = QtWidgets.QLabel(self) self.label2.setText( - "

ЧАСТЬ II

Зондовые характеристики плазмы

") + "

ЧАСТЬ " + "II

Зондовые характеристики " + "плазмы

") self.label2.setGeometry(QtCore.QRect(5 * self.q.width() // 6 - 150, 3 * self.q.height() // 4 - 40, 300, 80)) self.button1 = QtWidgets.QPushButton(self) self.button1.setGeometry(QtCore.QRect(5 * self.q.width() // 6 - 40, self.q.height() // 4 + 80, 80, 40)) @@ -36,21 +45,215 @@ class MyWidget(QtWidgets.QWidget): self.button2.setGeometry(QtCore.QRect(5 * self.q.width() // 6 - 40, 3 * self.q.height() // 4 + 80, 80, 40)) self.button2.setText("Начать") - #self.layout = QtWidgets.QVBoxLayout(self) - #self.layout.addWidget(self.text) - #self.layout.addWidget(self.button) - self.button.clicked.connect(self.esc) + self.button1.clicked.connect(self.open_part1) + self.button2.clicked.connect(self.open_part2) @QtCore.Slot() def esc(self): self.close() + def open_part1(self): + self.part1.showFullScreen() + self.close() + + def open_part2(self): + self.part2.showFullScreen() + self.close() + + +class Part1(QtWidgets.QWidget): + def __init__(self): + super().__init__() + self.started = False + self.q = QtGui.QScreen.availableGeometry(QtWidgets.QApplication.primaryScreen()) + h = self.q.height() * 0.2 + + self.button = QtWidgets.QPushButton(self) + self.button.setGeometry(QtCore.QRect(20, 20, 40, 40)) + self.button.setText("Esc") + + self.title = QtWidgets.QLabel(self) + self.title.setText( + "

ЧАСТЬ " + "I

Вольт-амперная характеристика газового " + "разряда

") + self.title.setGeometry(QtCore.QRect(self.q.width() // 2 - 200, 20, 400, 80)) + + self.back_button = QtWidgets.QPushButton(self) + self.back_button.setGeometry(QtCore.QRect(20, self.q.height() - 20, 80, 40)) + self.back_button.setText("Назад") + + self.pixmap0 = QtGui.QPixmap('Aspect-ratio-4x3.png') + self.pixmap = self.pixmap0.scaledToHeight(3 * h) + self.plot1 = QtWidgets.QLabel(self) + self.plot1.setPixmap(self.pixmap) + self.plot1.setGeometry(QtCore.QRect(h, h + 20, 4 * h, 3 * h)) + + self.text = QtWidgets.QLabel(self) + self.text.setText("

Перед проведением измерений ВАХ " + "газового разряда

проверьте " + "подключение вольтметра V1 и амперметра A1," + "

а также убедитесь, " + "что переключатель П1 находится в положении I.

При проведении измерений медленно увеличивайте выходное" + "

напряжение ВИП до достижения " + "максимального значения тока" + "

через амперметр " + "А(не более 5 мА), затем проведите измерения " + "

в обратную сторону.

График " + "Iр(Uр) будет строиться автоматически,

после завершения измерений можно сохранить полученные

значения " + "и график.

") + self.text.setGeometry(QtCore.QRect(6 * h, h + 20, 3 * h, 2 * h + 20)) + + self.start_btn = QtWidgets.QPushButton(self) + self.start_btn.setText("Начать измерения") + self.start_btn.setGeometry(QtCore.QRect(7.5 * h - 150, 4 * h - 50, 120, 30)) + + self.reset_btn = QtWidgets.QPushButton(self) + self.reset_btn.setText("Сбросить") + self.reset_btn.setGeometry(QtCore.QRect(7.5 * h + 30, 4 * h - 50, 120, 30)) + + self.save_btn = QtWidgets.QPushButton(self) + self.save_btn.setText("Сохранить") + self.save_btn.setGeometry(QtCore.QRect(7.5 * h - 60, 4 * h, 120, 30)) + self.save_btn.hide() + + self.button.clicked.connect(self.esc) + self.back_button.clicked.connect(self.back) + self.start_btn.clicked.connect(self.start_stop) + self.reset_btn.clicked.connect(self.reset) + + @QtCore.Slot() + def esc(self): + self.close() + + def back(self): + self.w = TitleScreen() + self.w.showFullScreen() + self.close() + + def start_stop(self): + if not self.started: + self.start_btn.setText("Стоп") + self.started = True + self.save_btn.hide() + else: + self.start_btn.setText("Продолжить") + self.started = False + self.save_btn.show() + + def reset(self): + self.started = False + self.start_btn.setText("Начать измерения") + self.save_btn.hide() + + +class Part2(QtWidgets.QWidget): + def __init__(self): + super().__init__() + self.started = False + self.n = 0 + self.q = QtGui.QScreen.availableGeometry(QtWidgets.QApplication.primaryScreen()) + h = self.q.height() * 0.2 + + self.button = QtWidgets.QPushButton(self) + self.button.setGeometry(QtCore.QRect(20, 20, 40, 40)) + self.button.setText("Esc") + + self.title = QtWidgets.QLabel(self) + self.title.setText( + "

ЧАСТЬ " + "II

Зондовые характеристики " + "плазмы

") + self.title.setGeometry(QtCore.QRect(self.q.width() // 2 - 200, 20, 400, 80)) + + self.back_button = QtWidgets.QPushButton(self) + self.back_button.setGeometry(QtCore.QRect(20, self.q.height() - 20, 80, 40)) + self.back_button.setText("Назад") + + self.pixmap0 = QtGui.QPixmap('Aspect-ratio-4x3.png') + self.pixmap = self.pixmap0.scaledToHeight(3 * h) + self.plot1 = QtWidgets.QLabel(self) + self.plot1.setPixmap(self.pixmap) + self.plot1.setGeometry(QtCore.QRect(h, h + 20, 4 * h, 3 * h)) + + self.text = QtWidgets.QLabel(self) + self.text.setText("

Перед проведением измерений " + "зондовых характеристик

плазмы " + "проверьте подключение вольтметра V2

и амперметров Aи А2, а также убедитесь," + "

что переключатель П1 " + "находится в положении II.

Установите " + "требуемый согласно методике разрядный ток,

не изменяйте его в момент проведения серии измерений.

При помощи потенциометра измерьте " + "ВАХ

в максимальном диапазоне, " + "учтите,

что полярность можно менять " + "с помощью

переключателя " + "П2 только при токе Iз= 0.

График Iз(Uз) будет строиться автоматически," + "

после завершения всех серий " + "измерений

можно сохранить полученные " + "значения и график.

") + self.text.setGeometry(QtCore.QRect(6 * h, h + 20, 3 * h, 2 * h + 20)) + + self.start_btn = QtWidgets.QPushButton(self) + self.start_btn.setText("Добавить серию") + self.start_btn.setGeometry(QtCore.QRect(7.5 * h - 150, 4 * h - 50, 120, 30)) + + self.delete_btn = QtWidgets.QPushButton(self) + self.delete_btn.setText("Удалить серию") + self.delete_btn.setGeometry(QtCore.QRect(7.5 * h + 30, 4 * h - 50, 120, 30)) + self.delete_btn.hide() + + self.save_btn = QtWidgets.QPushButton(self) + self.save_btn.setText("Сохранить") + self.save_btn.setGeometry(QtCore.QRect(7.5 * h - 60, 4 * h, 120, 30)) + self.save_btn.hide() + + self.button.clicked.connect(self.esc) + self.back_button.clicked.connect(self.back) + self.start_btn.clicked.connect(self.start_stop) + self.delete_btn.clicked.connect(self.delete) + + @QtCore.Slot() + def esc(self): + self.close() + + def back(self): + self.w = TitleScreen() + self.w.showFullScreen() + self.close() + + def start_stop(self): + if not self.started: + self.start_btn.setText("Стоп") + self.started = True + self.save_btn.hide() + self.n += 1 + else: + self.start_btn.setText("Добавить серию") + self.started = False + self.save_btn.show() + self.delete_btn.show() + + def delete(self): + self.started = False + self.start_btn.setText("Добавить серию") + self.n -= 1 + if self.n == 0: + self.save_btn.hide() + self.delete_btn.hide() + if __name__ == "__main__": app = QtWidgets.QApplication([]) - widget = MyWidget() + widget = TitleScreen() widget.showFullScreen() - sys.exit(app.exec()) \ No newline at end of file + sys.exit(app.exec())