visual almost complete
This commit is contained in:
parent
8cf80919ed
commit
ac8ff99e85
@ -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("<html><head/><body><p align=\"center\"><span style=\" font-size:12pt; font-weight:600;\">Лабораторная работа 3.5.1</span></p><p align=\"center\"><span style=\" font-size:11pt;\">Исследование плазмы газового разряда</span></p></body></html>")
|
||||
self.text.setGeometry(QtCore.QRect(self.q.width() // 4, self.q.height() // 2 - 40, 300, 80))
|
||||
self.text.setText(
|
||||
"<html><head/><body><p align=\"center\"><span style=\" font-size:20pt; font-weight:600;\">Лабораторная "
|
||||
"работа 3.5.1</span></p><p align=\"center\"><span style=\" font-size:16pt;\">Исследование плазмы газового "
|
||||
"разряда</span></p></body></html>")
|
||||
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(
|
||||
"<html><head/><body><p align=\"center\"><span style=\" font-size:10pt; font-weight:600;\">ЧАСТЬ I</span></p><p align=\"center\"><span style=\" font-size:10pt;\">Вольт-амперная характеристика газового разряда</span></p></body></html>")
|
||||
"<html><head/><body><p align=\"center\"><span style=\" font-size:10pt; font-weight:600;\">ЧАСТЬ "
|
||||
"I</span></p><p align=\"center\"><span style=\" font-size:10pt;\">Вольт-амперная характеристика газового "
|
||||
"разряда</span></p></body></html>")
|
||||
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(
|
||||
"<html><head/><body><p align=\"center\"><span style=\" font-size:10pt; font-weight:600;\"> ЧАСТЬ II</span></p><p align=\"center\"><span style=\" font-size:10pt;\">Зондовые характеристики плазмы</span></p></body></html>")
|
||||
"<html><head/><body><p align=\"center\"><span style=\" font-size:10pt; font-weight:600;\"> ЧАСТЬ "
|
||||
"II</span></p><p align=\"center\"><span style=\" font-size:10pt;\">Зондовые характеристики "
|
||||
"плазмы</span></p></body></html>")
|
||||
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(
|
||||
"<html><head/><body><p align=\"center\"><span style=\" font-size:16pt; font-weight:600;\">ЧАСТЬ "
|
||||
"I</span></p><p align=\"center\"><span style=\" font-size:12pt;\">Вольт-амперная характеристика газового "
|
||||
"разряда</span></p></body></html>")
|
||||
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("<html><p align=\"left\"><span style=\" font-size:10pt;\">Перед проведением измерений ВАХ "
|
||||
"газового разряда</p><p align=\"left\"><span style=\" font-size:10pt;\">проверьте "
|
||||
"подключение вольтметра V<sub>1</sub> и амперметра A<sub>1</sub>,"
|
||||
"</p><p align=\"left\"><span style=\" font-size:10pt;\">а также убедитесь, "
|
||||
"что переключатель П<sub>1</sub> находится в положении I.</p><p align=\"left\"><span "
|
||||
"style=\" font-size:10pt;\">При проведении измерений медленно увеличивайте выходное"
|
||||
"</p><p align=\"left\"><span style=\" font-size:10pt;\">напряжение ВИП до достижения "
|
||||
"максимального значения тока"
|
||||
"</p><p align=\"left\"><span style=\" font-size:10pt;\">через амперметр "
|
||||
"А<sub>1 </sub>(не более 5 мА), затем проведите измерения "
|
||||
"</p><p align=\"left\"><span style=\" font-size:10pt;\">в обратную сторону.</p><p "
|
||||
"align=\"left\"><span style=\" font-size:10pt;\">График "
|
||||
"I<sub>р</sub>(U<sub>р</sub>) будет строиться автоматически,</p><p align=\"left\"><span "
|
||||
"style=\" font-size:10pt;\">после завершения измерений можно сохранить полученные</p><p "
|
||||
"align=\"left\"><span style=\" font-size:10pt;\">значения "
|
||||
"и график.</p></html>")
|
||||
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(
|
||||
"<html><head/><body><p align=\"center\"><span style=\" font-size:16pt; font-weight:600;\"> ЧАСТЬ "
|
||||
"II</span></p><p align=\"center\"><span style=\" font-size:12pt;\">Зондовые характеристики "
|
||||
"плазмы</span></p></body></html>")
|
||||
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("<html><p align=\"left\"><span style=\" font-size:10pt;\">Перед проведением измерений "
|
||||
"зондовых характеристик</p><p align=\"left\"><span style=\" font-size:10pt;\">плазмы "
|
||||
"проверьте подключение вольтметра V<sub>2</sub></p><p align=\"left\"><span style=\" "
|
||||
"font-size:10pt;\">и амперметров A<sub>1 </sub>и А<sub>2</sub>, а также убедитесь,"
|
||||
"</p><p align=\"left\"><span style=\" font-size:10pt\";>что переключатель П<sub>1</sub> "
|
||||
"находится в положении II.</p><p align=\"left\"><span style=\" font-size:10pt;\">Установите "
|
||||
"требуемый согласно методике разрядный ток,</p><p align=\"left\"><span style=\" "
|
||||
"font-size:10pt\";>не изменяйте его в момент проведения серии измерений.</p><p "
|
||||
"align=\"left\"><span style=\" font-size:10pt;\">При помощи потенциометра измерьте "
|
||||
"ВАХ</p><p align=\"left\"><span style=\" font-size:10pt;\">в максимальном диапазоне, "
|
||||
"учтите,</p><p align=\"left\"><span style=\" font-size:10pt;\">что полярность можно менять "
|
||||
"с помощью</p><p align=\"left\"><span style=\" font-size:10pt;\">переключателя "
|
||||
"П<sub>2</sub> только при токе I<sub>з</sub>= 0.</p><p align=\"left\"><span style=\" "
|
||||
"font-size:10pt;\">График I<sub>з</sub>(U<sub>з</sub>) будет строиться автоматически,"
|
||||
"</p><p align=\"left\"><span style=\" font-size:10pt;\">после завершения всех серий "
|
||||
"измерений</p><p align=\"left\"><span style=\" font-size:10pt;\">можно сохранить полученные "
|
||||
"значения и график.</p></html>")
|
||||
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())
|
||||
sys.exit(app.exec())
|
||||
|
Loading…
Reference in New Issue
Block a user