Changed list views to comboboxes in the table

This commit is contained in:
jrheinlaender 2012-10-26 13:47:49 +04:30 committed by wmayer
parent 5c1948d8b6
commit 1eb738fc3f
4 changed files with 52 additions and 45 deletions

View File

@ -20,6 +20,8 @@
# * *
# ******************************************************************************/
import FreeCAD # just for debug printing to console...
class SegmentFunctionSegment:
"One segment of a segment function"
start = 0
@ -143,10 +145,10 @@ class SegmentFunction:
return result
def output(self):
print self.name, " = ",
FreeCAD.Console.PrintMessage(self.name + " = ")
for i in range(len(self.segments)):
print self.segments[i].asString(),
FreeCAD.Console.PrintMessage(self.segments[i].asString())
if i < len(self.segments) - 1:
print " + ",
print ""
FreeCAD.Console.PrintMessage(" + ")
FreeCAD.Console.PrintMessage("\n")

View File

@ -21,7 +21,7 @@
# ******************************************************************************/
import os, tempfile
import FreeCADGui
import FreeCAD, FreeCADGui # FreeCAD just required for debug printing to the console...
import WebGui
from SegmentFunction import SegmentFunction
from ShaftFeature import ShaftFeature
@ -115,7 +115,7 @@ class Shaft:
self.segments[index].loadLocation = loadLocation
else:
# TODO: Show warning
print "Load location must be inside segment"
FreeCAD.Console.PrintMessage("Load location must be inside segment\n")
#self.feature.updateForces() graphical representation of the forces
self.equilibrium()
@ -187,7 +187,7 @@ class Shaft:
coefficientsMbz.append(1)
else:
# TODO: Better error message
print "Fixed constraint must be at beginning or end of shaft"
FreeCAD.Console.PrintMessage("Fixed constraint must be at beginning or end of shaft\n")
return
locations["Fy%u" % i] = location
@ -203,7 +203,7 @@ class Shaft:
#elif lType == "None":
# # No loads on segment
print "Segment: %u, type: %s, load: %f, location: %f" % (i, lType, load, location)
FreeCAD.Console.PrintMessage("Segment: %u, type: %s, load: %f, location: %f\n" % (i, lType, load, location))
self.printEquilibrium(variableNames, coefficientsFy)
self.printEquilibrium(variableNames, coefficientsMbz)
@ -227,8 +227,8 @@ class Shaft:
else:
moments[locations[variableNames[2]]] = solution[1]
print forces
print moments
FreeCAD.Console.PrintMessage(forces)
FreeCAD.Console.PrintMessage(moments)
self.Qy = SegmentFunction("Qy")
self.Qy.buildFromDict("x", forces)
self.Qy.output()
@ -241,12 +241,12 @@ class Shaft:
# Auxiliary method for debugging purposes
for i in range(len(var)):
if i == 0:
print "%f = " % coeff[i],
FreeCAD.Console.PrintMessage("%f = " % coeff[i])
else:
print "%f * %s" % (coeff[i], var[i]),
FreeCAD.Console.PrintMessage("%f * %s" % (coeff[i], var[i]))
if (i < len(var) - 1) and (i != 0):
print " + ",
print ""
FreeCAD.Console.PrintMessage(" + ")
FreeCAD.Console.PrintMessage("\n")
def __del__(self):
"Remove the temporary directory"

View File

@ -74,7 +74,7 @@ class WizardShaft:
#self.shaft.htmlWindow = htmlWindow
def updateEdge(self, column, start):
print "Not implemented yet - waiting for robust references..."
App.Console.PrintMessage("Not implemented yet - waiting for robust references...")
return
if self.sketchClosed is not True:
return
@ -116,3 +116,6 @@ class WizardShaftGui:
return {'Pixmap' : IconPath, 'MenuText': MenuText, 'ToolTip': ToolTip}
FreeCADGui.addCommand('PartDesign_WizardShaft', WizardShaftGui())
#Note: Start wizard in Python Console with
# Gui.runCommand('PartDesign_WizardShaft')

View File

@ -21,6 +21,7 @@
# ******************************************************************************/
from PyQt4 import QtCore, QtGui
import FreeCAD # Just for debug printing...
class WizardShaftTable:
"The table widget that contains all the data of the shaft"
@ -119,7 +120,7 @@ class WizardShaftTable:
widget = QtGui.QDoubleSpinBox(self.widget)
widget.setMinimum(0)
widget.setMaximum(1E9)
self.widget.setCellWidget(self.rowDict["Length"],index, widget)
self.widget.setCellWidget(self.rowDict["Length"], index, widget)
widget.setValue(length)
widget.valueChanged.connect(self.slotValueChanged)
widget.editingFinished.connect(self.slotEditingFinished)
@ -127,25 +128,25 @@ class WizardShaftTable:
widget = QtGui.QDoubleSpinBox(self.widget)
widget.setMinimum(0)
widget.setMaximum(1E9)
self.widget.setCellWidget(self.rowDict["Diameter"],index, widget)
self.widget.setCellWidget(self.rowDict["Diameter"], index, widget)
widget.setValue(diameter)
widget.valueChanged.connect(self.slotValueChanged)
widget.editingFinished.connect(self.slotEditingFinished)
# Load type
widget = QtGui.QListWidget(self.widget)
widget.insertItem(0, QtGui.QListWidgetItem("None", widget))
widget.insertItem(1, QtGui.QListWidgetItem("Fixed", widget))
widget.insertItem(2, QtGui.QListWidgetItem("Static", widget))
widget.insertItem(3, QtGui.QListWidgetItem("Bearing", widget))
widget.insertItem(4, QtGui.QListWidgetItem("Pulley", widget))
self.widget.setCellWidget(self.rowDict["LoadType"],index, widget)
widget.setCurrentRow(0)
widget.currentItemChanged.connect(self.slotLoadType)
widget = QtGui.QComboBox(self.widget)
widget.insertItem(0, "None")
widget.insertItem(1, "Fixed")
widget.insertItem(2, "Static")
widget.insertItem(3, "Bearing")
widget.insertItem(4, "Pulley")
self.widget.setCellWidget(self.rowDict["LoadType"], index, widget)
widget.setCurrentIndex(0)
self.widget.connect(widget, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.slotLoadType)
# Load size
widget = QtGui.QDoubleSpinBox(self.widget)
widget.setMinimum(-1E9)
widget.setMaximum(1E9)
self.widget.setCellWidget(self.rowDict["LoadSize"],index, widget)
self.widget.setCellWidget(self.rowDict["LoadSize"], index, widget)
widget.setValue(0)
widget.valueChanged.connect(self.slotValueChanged)
widget.editingFinished.connect(self.slotEditingFinished)
@ -153,18 +154,18 @@ class WizardShaftTable:
widget = QtGui.QDoubleSpinBox(self.widget)
widget.setMinimum(0)
widget.setMaximum(1E9)
self.widget.setCellWidget(self.rowDict["LoadLocation"],index, widget)
self.widget.setCellWidget(self.rowDict["LoadLocation"], index, widget)
widget.setValue(0)
widget.valueChanged.connect(self.slotValueChanged)
widget.editingFinished.connect(self.slotEditingFinished)
# Start edge type
widget = QtGui.QListWidget(self.widget)
widget.insertItem(0, QtGui.QListWidgetItem("None", widget))
widget.insertItem(1, QtGui.QListWidgetItem("Chamfer", widget))
widget.insertItem(2, QtGui.QListWidgetItem("Fillet", widget))
widget = QtGui.QComboBox(self.widget)
widget.insertItem(0, "None",)
widget.insertItem(1, "Chamfer")
widget.insertItem(2, "Fillet")
self.widget.setCellWidget(self.rowDict["StartEdgeType"],index, widget)
widget.setCurrentRow(0)
widget.currentItemChanged.connect(self.slotStartEdgeType)
widget.setCurrentIndex(0)
self.widget.connect(widget, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.slotLoadType)
# Start edge size
widget = QtGui.QDoubleSpinBox(self.widget)
widget.setMinimum(0)
@ -174,13 +175,13 @@ class WizardShaftTable:
widget.valueChanged.connect(self.slotValueChanged)
widget.editingFinished.connect(self.slotEditingFinished)
# End edge type
widget = QtGui.QListWidget(self.widget)
widget.insertItem(0, QtGui.QListWidgetItem("None", widget))
widget.insertItem(1, QtGui.QListWidgetItem("Chamfer", widget))
widget.insertItem(2, QtGui.QListWidgetItem("Fillet", widget))
widget = QtGui.QComboBox(self.widget)
widget.insertItem(0, "None",)
widget.insertItem(1, "Chamfer")
widget.insertItem(2, "Fillet")
self.widget.setCellWidget(self.rowDict["EndEdgeType"],index, widget)
widget.setCurrentRow(0)
widget.currentItemChanged.connect(self.slotEndEdgeType)
widget.setCurrentIndex(0)
self.widget.connect(widget, QtCore.SIGNAL("currentIndexChanged(const QString&)"), self.slotLoadType)
# End edge size
widget = QtGui.QDoubleSpinBox(self.widget)
widget.setMinimum(0)
@ -231,11 +232,12 @@ class WizardShaftTable:
def getDiameter(self, column):
return self.getDoubleValue("Diameter", column)
def slotLoadType(self, new, old):
if new.text() != "Fixed":
@QtCore.pyqtSlot('QString')
def slotLoadType(self, text):
if text != "Fixed":
if (self.getLoadSize is None) or (self.getLoadLocation is None):
return
self.shaft.updateLoad(self.getFocusedColumn(), loadType = new.text())
self.shaft.updateLoad(self.getFocusedColumn(), loadType = text)
def setLoadType(self, column, t):
self.setListValue("LoadType", column, t)
@ -305,13 +307,13 @@ class WizardShaftTable:
def setListValue(self, row, column, v):
widget = self.widget.cellWidget(self.rowDict[row], column)
widget.blockSignals(True)
widget.setCurrentItem(widget.findItems(v, QtCore.Qt.MatchExactly)[0])
widget.setCurrentIndex(widget.findText(v, QtCore.Qt.MatchExactly))
widget.blockSignals(False)
def getListValue(self, row, column):
widget = self.widget.cellWidget(self.rowDict[row], column)
if widget is not None:
return widget.currentItem().text().toAscii()[0].upper()
return widget.currentText().toAscii()[0].upper()
else:
return None