faculty_project/QдизайнT/PlotterDialog.py

107 lines
4.2 KiB
Python

from PyQt5.QtWidgets import *
class Widget1(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent=parent)
layout = QFormLayout(self)
LineEditGraf = QLineEdit("график 1")
NameX=QGroupBox("X")
NameY = QGroupBox("Y")
LineEditX = QLineEdit()
LineEditY = QLineEdit()
layout.addWidget(LineEditGraf)
layout.addWidget(NameX)
layout.addWidget(LineEditX)
layout.addWidget(NameY)
layout.addWidget(LineEditY)
class Widget2(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent=parent)
# Традиционная семья Лаяутов, где главный -- папа
layout = QVBoxLayout(self) # папа-лаяут
layout_funct = QHBoxLayout(self) # мама-лаяут
layout_variab = QHBoxLayout(self) # сестра-лаяут
# Дети-лаяуты
layout_dop1 = QVBoxLayout(self) # умный детина
layout_dop2 = QVBoxLayout(self) # так и сяк
layout_dop3 = QVBoxLayout(self) # вовсе дурак
Namelabel_variab = QLabel('Переменные', self) # заголовок перед кнопками
layout.addWidget(Namelabel_variab) # Вложение в главный лаяут
# Кнопки для выбора переменных
VariabelsButton_t = QPushButton('t', self)
VariabelsButton_p = QPushButton('p', self)
VariabelsButton_f = QPushButton('f', self)
# Подключение кнопок
layout_variab.addWidget(VariabelsButton_t)
layout_variab.addWidget(VariabelsButton_p)
layout_variab.addWidget(VariabelsButton_f)
layout.addLayout(layout_variab) # Вложение в главный лаяут
# Создание текстового заголовка
Namelabel_funct = QLabel('Тривиальные функции', self)
layout.addWidget(Namelabel_funct) # Вложение в главный лаяут
# Создание кнопок
FunctonButton_exp = QPushButton('exp', self)
FunctonButton_ln = QPushButton('ln', self)
# Вложение кнопок по две в вертикальную коробку(лаяут)
layout_dop1.addWidget(FunctonButton_exp)
layout_dop1.addWidget(FunctonButton_ln)
# Создание кнопок
FunctonButton_abs = QPushButton('abs', self)
FunctonButton_sin = QPushButton('sin', self)
# Дети-лаяуты хранят по две кнопки, так красивее
layout_dop2.addWidget(FunctonButton_abs)
layout_dop2.addWidget(FunctonButton_sin)
# Создание кнопок
FunctonButton_cos = QPushButton('cos', self)
FunctonButton_tg = QPushButton('tg', self)
# Вложение кнопок
layout_dop3.addWidget(FunctonButton_cos)
layout_dop3.addWidget(FunctonButton_tg)
# Вложение вертикальных лаяутов в горизонтальный
layout_funct.addLayout(layout_dop1)
layout_funct.addLayout(layout_dop2)
layout_funct.addLayout(layout_dop3)
layout.addLayout(layout_funct) # Вложение в главный лаяут
class stackedExample(QWidget):
def __init__(self, parent=None):
QWidget.__init__(self, parent=parent)
lay = QVBoxLayout(self)
self.Stack = QStackedWidget()
self.Stack.addWidget(Widget1())
self.Stack.addWidget(Widget2())
btnNext = QPushButton("Next")
btnNext.clicked.connect(self.onNext)
btnPrevious = QPushButton("Previous")
btnPrevious.clicked.connect(self.onPrevious)
btnLayout = QHBoxLayout()
btnLayout.addWidget(btnPrevious)
btnLayout.addWidget(btnNext)
lay.addWidget(self.Stack)
lay.addLayout(btnLayout)
def onNext(self):
self.Stack.setCurrentIndex((self.Stack.currentIndex()+1) % 2)
def onPrevious(self):
self.Stack.setCurrentIndex((self.Stack.currentIndex()-1) % 2)
if __name__ == '__main__':
import sys
app = QApplication(sys.argv)
w = stackedExample()
w.show()
sys.exit(app.exec_())