constantes ui

This commit is contained in:
leo 2022-02-28 21:18:39 +01:00
parent bed9dcc52a
commit d954eb57e1
Signed by: leo
GPG Key ID: 0DD993BFB2B307DB
7 changed files with 125 additions and 12 deletions

7
Car.py
View File

@ -57,6 +57,9 @@ class Car():
self.vmax=0 self.vmax=0
self.S = 5
self.T = 0.3
self.vroom = 0 self.vroom = 0
self.rawRoute = route self.rawRoute = route
@ -162,8 +165,8 @@ class Car():
vbar=(self.v+vleader)/2 vbar=(self.v+vleader)/2
bbar=(bleader+self.b)/2 bbar=(bleader+self.b)/2
S=5 S=self.S
T=0.3 T=self.T
vsec=vleader+(S-vmax*T)/(vbar/bbar+T) vsec=vleader+(S-vmax*T)/(vbar/bbar+T)
vd=min(self.v+self.a*dt,vmax) #,vsec) vd=min(self.v+self.a*dt,vmax) #,vsec)
self.v=max(0,vd) self.v=max(0,vd)

View File

@ -2,7 +2,8 @@ import sumolib
from Car import Car from Car import Car
from Flow import Flow from Flow import Flow
from carInfo import Ui_carInfo from carInfo import Ui_carInfo
from PySide6.QtWidgets import QWidget, QLabel from varEdit import Ui_varEdit
from PySide6.QtWidgets import QWidget, QLabel, QToolBox
from PySide6.QtCore import Qt, Slot, Signal, QThread from PySide6.QtCore import Qt, Slot, Signal, QThread
from PySide6.QtCharts import QChart, QSplineSeries, QLineSeries from PySide6.QtCharts import QChart, QSplineSeries, QLineSeries
from math import ceil from math import ceil
@ -75,13 +76,35 @@ class carInfo(QWidget):
obj.setText(f"{key} : {val}") obj.setText(f"{key} : {val}")
obj.update() obj.update()
class varEdit(QWidget):
def __init__(self, parent, carController, varName, value):
super().__init__()
self.ui = Ui_varEdit()
self.ui.setupUi(self)
self.hookName = varName
self.ui.name.setText(varName)
self.ui.value.setValue(value)
self.CC = carController
self.ui.value.valueChanged.connect(self.valueChanged)
def valueChanged(self):
value = self.ui.value.value()
self.CC.updateConstant(self.hookName, value)
class CarController: class CarController:
def __init__(self,parentMap): def __init__(self, parentMap, mainWindow):
self.map=parentMap self.map=parentMap
self.cars=[] self.cars=[]
self.flows=[] self.flows=[]
self.t=0 self.t=0
self.infoWidget=None self.infoWidget=mainWindow.findChild(QToolBox, "carInfos")
varWidget = mainWindow.ui.constEdit
varWidget.addWidget(varEdit(varWidget, self, "S", 5))
varWidget.addWidget(varEdit(varWidget, self, "T", 0.3))
def fromPath(self,path): def fromPath(self,path):
self.cars=[] self.cars=[]
@ -134,5 +157,6 @@ class CarController:
painter.setPen(Qt.white) painter.setPen(Qt.white)
car.draw(painter) car.draw(painter)
def setInfoWidget(self, widget): def updateConstant(self, name, val):
self.infoWidget = widget for car in self.cars:
car.__dict__[name] = val

View File

@ -17,9 +17,7 @@ class mainLoop(QObject):
self.map = Map() self.map = Map()
self.controller = CarController(self.map) self.controller = CarController(self.map, parent)
self.controller.setInfoWidget(parent.findChild(QToolBox,"carInfos"))
self.painter.addMap(self.map) self.painter.addMap(self.map)
self.painter.addCarController(self.controller) self.painter.addCarController(self.controller)

48
varEdit.py Normal file
View File

@ -0,0 +1,48 @@
# -*- coding: utf-8 -*-
################################################################################
## Form generated from reading UI file 'varEdit.ui'
##
## Created by: Qt User Interface Compiler version 6.2.3
##
## 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, QDoubleSpinBox, QHBoxLayout, QLabel,
QSizePolicy, QWidget)
class Ui_varEdit(object):
def setupUi(self, varEdit):
if not varEdit.objectName():
varEdit.setObjectName(u"varEdit")
varEdit.resize(400, 300)
self.horizontalLayout = QHBoxLayout(varEdit)
self.horizontalLayout.setObjectName(u"horizontalLayout")
self.name = QLabel(varEdit)
self.name.setObjectName(u"name")
self.horizontalLayout.addWidget(self.name)
self.value = QDoubleSpinBox(varEdit)
self.value.setObjectName(u"value")
self.horizontalLayout.addWidget(self.value)
self.retranslateUi(varEdit)
QMetaObject.connectSlotsByName(varEdit)
# setupUi
def retranslateUi(self, varEdit):
varEdit.setWindowTitle(QCoreApplication.translate("varEdit", u"Form", None))
self.name.setText(QCoreApplication.translate("varEdit", u"TextLabel", None))
# retranslateUi

31
varEdit.ui Normal file
View File

@ -0,0 +1,31 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>varEdit</class>
<widget class="QWidget" name="varEdit">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>400</width>
<height>300</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="name">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item>
<widget class="QDoubleSpinBox" name="value"/>
</item>
</layout>
</widget>
<resources/>
<connections/>
</ui>

View File

@ -48,6 +48,11 @@ class Ui_MainWindow(object):
self.verticalLayout = QVBoxLayout() self.verticalLayout = QVBoxLayout()
self.verticalLayout.setObjectName(u"verticalLayout") self.verticalLayout.setObjectName(u"verticalLayout")
self.verticalLayout.setSizeConstraint(QLayout.SetDefaultConstraint) self.verticalLayout.setSizeConstraint(QLayout.SetDefaultConstraint)
self.constEdit = QVBoxLayout()
self.constEdit.setObjectName(u"constEdit")
self.verticalLayout.addLayout(self.constEdit)
self.generalInfos = QVBoxLayout() self.generalInfos = QVBoxLayout()
self.generalInfos.setObjectName(u"generalInfos") self.generalInfos.setObjectName(u"generalInfos")
self.horizontalLayout_3 = QHBoxLayout() self.horizontalLayout_3 = QHBoxLayout()
@ -118,7 +123,8 @@ class Ui_MainWindow(object):
self.verticalLayout.addWidget(self.carInfos) self.verticalLayout.addWidget(self.carInfos)
self.verticalLayout.setStretch(0, 1) self.verticalLayout.setStretch(0, 1)
self.verticalLayout.setStretch(1, 5) self.verticalLayout.setStretch(1, 1)
self.verticalLayout.setStretch(2, 5)
self.horizontalLayout.addLayout(self.verticalLayout) self.horizontalLayout.addLayout(self.verticalLayout)

View File

@ -34,10 +34,13 @@
</widget> </widget>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout" stretch="1,5"> <layout class="QVBoxLayout" name="verticalLayout" stretch="1,1,5">
<property name="sizeConstraint"> <property name="sizeConstraint">
<enum>QLayout::SetDefaultConstraint</enum> <enum>QLayout::SetDefaultConstraint</enum>
</property> </property>
<item>
<layout class="QVBoxLayout" name="constEdit"/>
</item>
<item> <item>
<layout class="QVBoxLayout" name="generalInfos" stretch="0,0,0"> <layout class="QVBoxLayout" name="generalInfos" stretch="0,0,0">
<item> <item>