本文整理汇总了Python中qtpy.QtWidgets.QTableView.setItemDelegate方法的典型用法代码示例。如果您正苦于以下问题:Python QTableView.setItemDelegate方法的具体用法?Python QTableView.setItemDelegate怎么用?Python QTableView.setItemDelegate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qtpy.QtWidgets.QTableView
的用法示例。
在下文中一共展示了QTableView.setItemDelegate方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: CompositionElementalWidget
# 需要导入模块: from qtpy.QtWidgets import QTableView [as 别名]
# 或者: from qtpy.QtWidgets.QTableView import setItemDelegate [as 别名]
#.........这里部分代码省略.........
return editor
elif column == 1:
editor = QLineEdit(parent)
editor.setValidator(QDoubleValidator())
return editor
else:
return QItemDelegate.createEditor(self, parent, option, index)
def setEditorData(self, editor, index):
text = index.model().data(index, Qt.DisplayRole)
column = index.column()
if column == 0:
if text != 'none':
editor.setSelection(text)
elif column == 1:
editor.setText(text)
else:
QItemDelegate.setEditorData(self, editor, index)
def setModelData(self, editor, model, index):
column = index.column()
if column == 0:
model.setData(index, editor.selection())
elif column == 1:
model.setData(index, editor.text())
else:
return QItemDelegate.setModelData(self, editor, model, index)
def __init__(self, parent=None):
_CompositionWidget.__init__(self, CompositionElemental, parent)
def _init_ui(self):
# Widgets
model = self._CompositionModel()
self._table = QTableView()
self._table.setModel(model)
self._table.setItemDelegate(self._CompositionDelegate(self))
self._table.horizontalHeader().setStretchLastSection(True)
self._toolbar = QToolBar()
action_add = self._toolbar.addAction(getIcon("list-add"), "Add layer")
action_remove = self._toolbar.addAction(getIcon("list-remove"), "Remove layer")
# Layouts
layout = _CompositionWidget._init_ui(self)
layout.addRow(self._table)
layout.addRow(self._toolbar)
# Signals
action_add.triggered.connect(self._on_add)
action_remove.triggered.connect(self._on_remove)
model.dataChanged.connect(self.edited)
model.rowsInserted.connect(self.edited)
model.rowsRemoved.connect(self.edited)
return layout
def _on_add(self):
index = self._table.selectionModel().currentIndex()
model = self._table.model()
model.insertRows(index.row() + 1)
def _on_remove(self):
selection = self._table.selectionModel().selection().indexes()
if len(selection) == 0:
QMessageBox.warning(self, "Window layer", "Select a layer")
return
model = self._table.model()
for row in sorted(map(methodcaller('row'), selection), reverse=True):
model.removeRow(row)
def _create_parameter(self):
return self.CLASS('wt%')
def parameter(self, parameter=None):
parameter = _CompositionWidget.parameter(self, parameter)
parameter.update(self._table.model().composition)
return parameter
def setParameter(self, condition):
_CompositionWidget.setParameter(self, condition)
self._table.model().composition.update(condition)
self._table.model().reset()
def setReadOnly(self, state):
_CompositionWidget.setReadOnly(self, state)
if state:
trigger = QTableView.EditTrigger.NoEditTriggers
else:
trigger = QTableView.EditTrigger.AllEditTriggers
self._table.setEditTriggers(trigger)
self._toolbar.setEnabled(not state)
def isReadOnly(self):
return _CompositionWidget.isReadOnly(self) and \
self._table.editTriggers() == QTableView.EditTrigger.NoEditTriggers and \
not self._toolbar.isEnabled()
示例2: SpecimenPositionListWidget
# 需要导入模块: from qtpy.QtWidgets import QTableView [as 别名]
# 或者: from qtpy.QtWidgets.QTableView import setItemDelegate [as 别名]
#.........这里部分代码省略.........
column = index.column()
if column == 0:
editor.setText(text)
elif column == 1:
editor.setText(text)
elif column == 2:
editor.setText(text)
elif column == 3:
editor.setText(text)
elif column == 4:
editor.setText(text)
else:
QItemDelegate.setEditorData(self, editor, index)
def setModelData(self, editor, model, index):
column = index.column()
if column == 0:
model.setData(index, editor.text())
elif column == 1:
model.setData(index, editor.text())
elif column == 2:
model.setData(index, editor.text())
elif column == 3:
model.setData(index, editor.text())
elif column == 4:
model.setData(index, editor.text())
else:
return QItemDelegate.setModelData(self, editor, model, index)
def __init__(self, parent=None):
ParameterWidget.__init__(self, object, parent)
def _init_ui(self):
# Widgets
self._table = QTableView()
self._table.setModel(self._SpecimenPositionModel())
self._table.setItemDelegate(self._SpecimenPositionDelegate(self))
self._table.horizontalHeader().setStretchLastSection(True)
self._toolbar = QToolBar()
action_add = self._toolbar.addAction(getIcon("list-add"), "Add layer")
action_remove = self._toolbar.addAction(getIcon("list-remove"), "Remove layer")
# Layouts
layout = ParameterWidget._init_ui(self)
layout.addRow(self._table)
layout.addRow(self._toolbar)
# Signals
action_add.triggered.connect(self._on_add)
action_remove.triggered.connect(self._on_remove)
return layout
def _on_add(self):
index = self._table.selectionModel().currentIndex()
model = self._table.model()
model.insertRows(index.row() + 1)
def _on_remove(self):
selection = self._table.selectionModel().selection().indexes()
if len(selection) == 0:
QMessageBox.warning(self, "Specimen position", "Select a position")
return
model = self._table.model()
for row in sorted(map(methodcaller('row'), selection), reverse=True):
model.removeRow(row)
def parameter(self):
positions = []
for position in self._table.model().positions:
positions.append(SpecimenPosition(position.x, position.y, position.z,
position.r, position.t))
return positions
def setParameter(self, positions):
model = self._table.model()
model.positions = positions
model.reset()
def positions(self):
return self.parameter()
def setPositions(self, positions):
self.setParameter(positions)
def setReadOnly(self, state):
ParameterWidget.setReadOnly(self, state)
if state:
trigger = QTableView.EditTrigger.NoEditTriggers
else:
trigger = QTableView.EditTrigger.AllEditTriggers
self._table.setEditTriggers(trigger)
self._toolbar.setEnabled(not state)
def isReadOnly(self):
return ParameterWidget.isReadOnly(self) and \
self._table.editTriggers() == QTableView.EditTrigger.NoEditTriggers and \
not self._toolbar.isEnabled()
示例3: WindowWidget
# 需要导入模块: from qtpy.QtWidgets import QTableView [as 别名]
# 或者: from qtpy.QtWidgets.QTableView import setItemDelegate [as 别名]
#.........这里部分代码省略.........
elif column == 1:
return NumericalAttributeLineEdit(WindowLayer.thickness, parent)
else:
return QItemDelegate.createEditor(self, parent, option, index)
def setEditorData(self, editor, index):
text = index.model().data(index, Qt.DisplayRole)
column = index.column()
if column == 0:
editor.setText(text)
elif column == 1:
editor.setText(text)
else:
QItemDelegate.setEditorData(self, editor, index)
def setModelData(self, editor, model, index):
column = index.column()
if column == 0:
model.setData(index, editor.text())
elif column == 1:
model.setData(index, editor.text())
else:
return QItemDelegate.setModelData(self, editor, model, index)
def __init__(self, parent=None):
ParameterWidget.__init__(self, Window, parent)
def _init_ui(self):
# Widgets
model = self._WindowModel()
self._table = QTableView()
self._table.setModel(model)
self._table.setItemDelegate(self._WindowDelegate(self))
self._table.horizontalHeader().setStretchLastSection(True)
self._toolbar = QToolBar()
action_add = self._toolbar.addAction(getIcon("list-add"), "Add layer")
action_remove = self._toolbar.addAction(getIcon("list-remove"), "Remove layer")
# Layouts
layout = ParameterWidget._init_ui(self)
layout.addRow(self._table)
layout.addRow(self._toolbar)
# Signals
action_add.triggered.connect(self._on_add)
action_remove.triggered.connect(self._on_remove)
model.dataChanged.connect(self.edited)
model.rowsInserted.connect(self.edited)
model.rowsRemoved.connect(self.edited)
return layout
def _on_add(self):
index = self._table.selectionModel().currentIndex()
model = self._table.model()
model.insertRows(index.row() + 1)
def _on_remove(self):
selection = self._table.selectionModel().selection().indexes()
if len(selection) == 0:
QMessageBox.warning(self, "Window layer", "Select a layer")
return