We are working to improve the editor material https://forum.freecadweb.org/viewtopic. ... 2&start=40
The idea is to use the FreeCADGui UiLoader with Gui::InputField, into the Delegate class, but is raising an error
Any wrong or idea?
Thank in advanced
Code: Select all
from PySide import QtCore, QtGui
import FreeCADGui
ui = FreeCADGui.UiLoader()
class MaterialDelegate(QtGui.QStyledItemDelegate):
def createEditor(self, parent, option, index):
if index.column() == 1:
# editor = QtGui.QLineEdit()
editor = ui.createWidget("Gui::InputField")
editor.setParent(parent)
return editor
def setEditorData(self, editor, index):
data = index.data()
editor.setText(data)
def setModelData(self, editor, model, index):
data = editor.text()
model.setData(index, data)
model = QtGui.QStandardItemModel()
tableView = QtGui.QTableView()
tableView.setModel(model)
delegate = MaterialDelegate()
tableView.setItemDelegate(delegate)
item = QtGui.QStandardItem("MyProperty")
it = QtGui.QStandardItem()
it.setText("10 m")
model.appendRow([item, it])
tableView.setWindowTitle("MaterialDelegate")
tableView.show()
Traceback (most recent call last):
File "<input>", line 15, in setModelData
AttributeError: 'PySide.QtGui.QWidget' object has no attribute 'text'