Imp of the ui design of padder plugin

This commit is contained in:
uhz 2017-03-07 11:27:31 +01:00
parent b3c311b4d9
commit 4a30c75bfc
2 changed files with 186 additions and 142 deletions

View File

@ -41,7 +41,7 @@ GROUPNAME_MAXLENGTH=8
class InputDialog(GenericDialog): class InputDialog(GenericDialog):
TBL_HEADER_LABEL=["Input Mesh", "Output group name"] TBL_HEADER_LABEL=["Input Mesh", "Output group name"]
inputValidated = pyqtSignal() inputValidated = pyqtSignal()
def __init__(self, parent=None, name="InputDialog", modal=0): def __init__(self, parent=None, name="InputDialog", modal=0):
@ -97,7 +97,7 @@ class InputDialog(GenericDialog):
icon.addFile(os.path.join(iconfolder,"steelbar.png")) icon.addFile(os.path.join(iconfolder,"steelbar.png"))
self.__ui.cmbMeshType.setItemIcon(meshTypeIndex, icon) self.__ui.cmbMeshType.setItemIcon(meshTypeIndex, icon)
self.MESHTYPE_ICONS[meshTypeIndex] = icon self.MESHTYPE_ICONS[meshTypeIndex] = icon
# The click on btnSmeshObject (signal clicked() emitted by the # The click on btnSmeshObject (signal clicked() emitted by the
# button btnSmeshObject) is connected to the slot # button btnSmeshObject) is connected to the slot
# onSelectSmeshObject, etc ... # onSelectSmeshObject, etc ...
@ -113,7 +113,10 @@ class InputDialog(GenericDialog):
self.__ui.tblListInput.horizontalHeader().setStretchLastSection(True) self.__ui.tblListInput.horizontalHeader().setStretchLastSection(True)
# Note that the type is not display explicitly in the Qt table # Note that the type is not display explicitly in the Qt table
# because it is specified using an icon on the text of the # because it is specified using an icon on the text of the
# name item. # name item.
# Setup default values for numerical parameters
self.__ui.txtParamNbIter.setValue(3)
# Note that PADDER does not support group name longer than 8 # Note that PADDER does not support group name longer than 8
# characters. We apply then this limit in the gui field. # characters. We apply then this limit in the gui field.
@ -230,7 +233,7 @@ class InputDialog(GenericDialog):
# new one # new one
if self.__dictInputData.has_key(meshName): if self.__dictInputData.has_key(meshName):
self.__delInputFromMap(meshName) self.__delInputFromMap(meshName)
inputData = InputData() inputData = InputData()
inputData.meshName = meshName inputData.meshName = meshName
inputData.meshObject = meshObject inputData.meshObject = meshObject
@ -247,7 +250,7 @@ class InputDialog(GenericDialog):
print "meshType = ",inputData.meshType print "meshType = ",inputData.meshType
print "nb concrete mesh ",self.__nbConcreteMesh print "nb concrete mesh ",self.__nbConcreteMesh
print "nb steelbar mesh ",self.__nbSteelbarMesh print "nb steelbar mesh ",self.__nbSteelbarMesh
def onDeleteInput(self): def onDeleteInput(self):
""" """
@ -267,7 +270,7 @@ class InputDialog(GenericDialog):
def __delInputFromMap(self, meshName): def __delInputFromMap(self, meshName):
""" """
This function removes the specified entry from the internal This function removes the specified entry from the internal
map (for data management purpose) map (for data management purpose)
""" """
inputData = self.__dictInputData.pop(meshName) inputData = self.__dictInputData.pop(meshName)
if inputData.meshType == InputData.MESHTYPES.CONCRETE: if inputData.meshType == InputData.MESHTYPES.CONCRETE:
@ -292,7 +295,7 @@ class InputDialog(GenericDialog):
meshObject = inputData.meshObject meshObject = inputData.meshObject
meshType = inputData.meshType meshType = inputData.meshType
groupName = inputData.groupName groupName = inputData.groupName
self.__addInputInGui(meshName, meshObject, meshType, groupName) self.__addInputInGui(meshName, meshObject, meshType, groupName)
self.__addInputInMap(meshName, meshObject, meshType, groupName) self.__addInputInMap(meshName, meshObject, meshType, groupName)
@ -307,7 +310,7 @@ class InputDialog(GenericDialog):
# Note that the values() function returns a copy of the list # Note that the values() function returns a copy of the list
# of values. # of values.
return self.__dictInputData.values() return self.__dictInputData.values()
def checkData(self): def checkData(self):
""" """
This function checks if the data are valid, from the dialog This function checks if the data are valid, from the dialog
@ -315,7 +318,7 @@ class InputDialog(GenericDialog):
""" """
if self.__nbConcreteMesh == 0 and self.__nbSteelbarMesh == 0: if self.__nbConcreteMesh == 0 and self.__nbSteelbarMesh == 0:
self.checkDataMessage = "You must define at least one mesh (CONCRETE or STEELBAR)" self.checkDataMessage = "You must define at least one mesh (CONCRETE or STEELBAR)"
return False return False
if self.__nbConcreteMesh > 1: if self.__nbConcreteMesh > 1:
self.checkDataMessage = "You define multiple CONCRETE meshes." self.checkDataMessage = "You define multiple CONCRETE meshes."
self.checkDataMessage += "You should verify first that your version of PADDER support this configuration." self.checkDataMessage += "You should verify first that your version of PADDER support this configuration."
@ -325,6 +328,7 @@ class InputDialog(GenericDialog):
return True return True
#def setParameters(self,
# ============================================================================== # ==============================================================================
# Basic use case # Basic use case
@ -357,9 +361,9 @@ def TEST_InputDialog_setData():
inputData.groupName = "myGroup" inputData.groupName = "myGroup"
listInputData = [] listInputData = []
listInputData.append(inputData) listInputData.append(inputData)
dlg.setData2(listInputData) dlg.setData2(listInputData)
dlg.displayAndWait() dlg.displayAndWait()
if dlg.wasOk(): if dlg.wasOk():
print "OK has been pressed" print "OK has been pressed"

View File

@ -1,189 +1,179 @@
<ui version="4.0" > <?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>InputFrame</class> <class>InputFrame</class>
<widget class="QDialog" name="InputFrame" > <widget class="QDialog" name="InputFrame">
<property name="geometry" > <property name="geometry">
<rect> <rect>
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>509</width> <width>759</width>
<height>307</height> <height>656</height>
</rect> </rect>
</property> </property>
<property name="windowTitle" > <property name="windowTitle">
<string>Input parameters</string> <string>Input parameters</string>
</property> </property>
<layout class="QHBoxLayout" > <layout class="QHBoxLayout" name="horizontalLayout_3">
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item> <item>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout" name="verticalLayout_5">
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item> <item>
<widget class="QLabel" name="lblSmeshObject" > <layout class="QHBoxLayout" name="horizontalLayout_2">
<property name="text" >
<string>Input MESH / Output group name / Type :</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item> <item>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout" name="verticalLayout_3">
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item> <item>
<layout class="QHBoxLayout" > <widget class="QLabel" name="lblSmeshObject">
<property name="margin" > <property name="text">
<number>0</number> <string>Input MESH / Output group name / Type :</string>
</property> </property>
<property name="spacing" > </widget>
</item>
<item>
<layout class="QVBoxLayout">
<property name="spacing">
<number>6</number> <number>6</number>
</property> </property>
<property name="margin">
<number>0</number>
</property>
<item> <item>
<layout class="QHBoxLayout" > <layout class="QHBoxLayout">
<property name="margin" > <property name="spacing">
<number>0</number>
</property>
<property name="spacing" >
<number>6</number> <number>6</number>
</property> </property>
<property name="margin">
<number>0</number>
</property>
<item> <item>
<widget class="QPushButton" name="btnSmeshObject" > <layout class="QHBoxLayout">
<property name="sizePolicy" > <property name="spacing">
<sizepolicy> <number>6</number>
<hsizetype>0</hsizetype>
<vsizetype>0</vsizetype>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property> </property>
<property name="maximumSize" > <property name="margin">
<size> <number>0</number>
<width>31</width>
<height>16777215</height>
</size>
</property> </property>
<property name="text" > <item>
<string/> <widget class="QPushButton" name="btnSmeshObject">
</property> <property name="sizePolicy">
<property name="icon" > <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<iconset>select.png</iconset> <horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="maximumSize">
<size>
<width>31</width>
<height>16777215</height>
</size>
</property>
<property name="text">
<string/>
</property>
<property name="icon">
<iconset>
<normaloff>select.png</normaloff>select.png</iconset>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="txtSmeshObject">
<property name="toolTip">
<string comment="Select the input mesh in the object browser"/>
</property>
</widget>
</item>
</layout>
</item>
<item>
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLineEdit" name="txtSmeshObject" > <widget class="QLineEdit" name="txtGroupName">
<property name="toolTip" > <property name="toolTip">
<string comment="Select the input mesh in the object browser" /> <string comment="Specify the name of the associated group in the output mesh"/>
</property> </property>
</widget> </widget>
</item> </item>
<item>
<widget class="Line" name="line_2">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cmbMeshType">
<property name="toolTip">
<string comment="Select the type of the mesh"/>
</property>
<item>
<property name="text">
<string>Béton</string>
</property>
<property name="icon">
<iconset>
<normaloff>concrete.png</normaloff>concrete.png</iconset>
</property>
</item>
<item>
<property name="text">
<string>Acier</string>
</property>
<property name="icon">
<iconset>
<normaloff>steelbar.png</normaloff>steelbar.png</iconset>
</property>
</item>
</widget>
</item>
</layout> </layout>
</item> </item>
<item> <item>
<widget class="Line" name="line" > <widget class="QTableView" name="tblListInput"/>
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="txtGroupName" >
<property name="toolTip" >
<string comment="Specify the name of the associated group in the output mesh" />
</property>
</widget>
</item>
<item>
<widget class="Line" name="line_2" >
<property name="orientation" >
<enum>Qt::Vertical</enum>
</property>
</widget>
</item>
<item>
<widget class="QComboBox" name="cmbMeshType" >
<property name="toolTip" >
<string comment="Select the type of the mesh" />
</property>
<item>
<property name="text" >
<string>Béton</string>
</property>
<property name="icon" >
<iconset>concrete.png</iconset>
</property>
</item>
<item>
<property name="text" >
<string>Acier</string>
</property>
<property name="icon" >
<iconset>steelbar.png</iconset>
</property>
</item>
</widget>
</item> </item>
</layout> </layout>
</item> </item>
<item>
<widget class="QTableView" name="tblListInput" />
</item>
</layout> </layout>
</item> </item>
<item> <item>
<layout class="QVBoxLayout" > <layout class="QVBoxLayout">
<property name="margin" > <property name="spacing">
<number>0</number>
</property>
<property name="spacing" >
<number>6</number> <number>6</number>
</property> </property>
<property name="margin">
<number>0</number>
</property>
<item> <item>
<widget class="QPushButton" name="btnAddInput" > <widget class="QPushButton" name="btnAddInput">
<property name="text" > <property name="text">
<string/> <string/>
</property> </property>
<property name="icon" > <property name="icon">
<iconset>addinput.png</iconset> <iconset>
<normaloff>addinput.png</normaloff>addinput.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QPushButton" name="btnDeleteInput" > <widget class="QPushButton" name="btnDeleteInput">
<property name="text" > <property name="text">
<string/> <string/>
</property> </property>
<property name="icon" > <property name="icon">
<iconset>deleteinput.png</iconset> <iconset>
<normaloff>deleteinput.png</normaloff>deleteinput.png</iconset>
</property> </property>
</widget> </widget>
</item> </item>
<item> <item>
<spacer> <spacer>
<property name="orientation" > <property name="orientation">
<enum>Qt::Vertical</enum> <enum>Qt::Vertical</enum>
</property> </property>
<property name="sizeHint" > <property name="sizeHint" stdset="0">
<size> <size>
<width>20</width> <width>20</width>
<height>40</height> <height>40</height>
@ -195,6 +185,56 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<widget class="Line" name="line_3">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
</widget>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_4">
<item>
<widget class="QLabel" name="lblNumericalParameters">
<property name="text">
<string>Paramètres numériques:</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QLabel" name="lblParamNbIter">
<property name="text">
<string>Nb. Itérations</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="lblParamRminRmax">
<property name="text">
<string>Rmin / Rmax</string>
</property>
</widget>
</item>
</layout>
</item>
<item>
<layout class="QVBoxLayout" name="verticalLayout_2">
<item>
<widget class="QSpinBox" name="txtParamNbIter"/>
</item>
<item>
<widget class="QDoubleSpinBox" name="txtParamRminRmax"/>
</item>
</layout>
</item>
</layout>
</item>
</layout>
</item>
</layout> </layout>
</item> </item>
</layout> </layout>