本文整理汇总了Python中PyQt4.QtGui.QListView.setItemDelegate方法的典型用法代码示例。如果您正苦于以下问题:Python QListView.setItemDelegate方法的具体用法?Python QListView.setItemDelegate怎么用?Python QListView.setItemDelegate使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PyQt4.QtGui.QListView
的用法示例。
在下文中一共展示了QListView.setItemDelegate方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: OWPySparkScript
# 需要导入模块: from PyQt4.QtGui import QListView [as 别名]
# 或者: from PyQt4.QtGui.QListView import setItemDelegate [as 别名]
class OWPySparkScript(SharedSparkContext, widget.OWWidget):
priority = 3
name = "PySpark Script"
description = "Write a PySpark script and run it on input"
icon = "../icons/PythonScript.svg"
inputs = [("in_object", object, "setObject")]
outputs = [("out_object", object, widget.Dynamic)]
libraryListSource = \
Setting([Script("Hello world", "print('Hello world')\n")])
currentScriptIndex = Setting(0)
splitterState = Setting(None)
auto_execute = Setting(False)
def __init__(self):
super().__init__()
self.in_data = None
self.in_distance = None
self.in_learner = None
self.in_classifier = None
self.in_object = None
self.auto_execute = False
for s in self.libraryListSource:
s.flags = 0
self._cachedDocuments = { }
self.infoBox = gui.widgetBox(self.controlArea, 'Info')
gui.label(
self.infoBox, self,
"<p>Execute python script.</p><p>Input variables:<ul><li> " + \
"<li>".join(t.name for t in self.inputs) + \
"</ul></p><p>Output variables:<ul><li>" + \
"<li>".join(t.name for t in self.outputs) + \
"</ul></p>"
)
self.libraryList = itemmodels.PyListModel(
[], self,
flags = Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable)
self.libraryList.wrap(self.libraryListSource)
self.controlBox = gui.widgetBox(self.controlArea, 'Library')
self.controlBox.layout().setSpacing(1)
self.libraryView = QListView(
editTriggers = QListView.DoubleClicked |
QListView.EditKeyPressed,
sizePolicy = QSizePolicy(QSizePolicy.Ignored,
QSizePolicy.Preferred)
)
self.libraryView.setItemDelegate(ScriptItemDelegate(self))
self.libraryView.setModel(self.libraryList)
self.libraryView.selectionModel().selectionChanged.connect(
self.onSelectedScriptChanged
)
self.controlBox.layout().addWidget(self.libraryView)
w = itemmodels.ModelActionsWidget()
self.addNewScriptAction = action = QAction("+", self)
action.setToolTip("Add a new script to the library")
action.triggered.connect(self.onAddScript)
w.addAction(action)
action = QAction(unicodedata.lookup("MINUS SIGN"), self)
action.setToolTip("Remove script from library")
action.triggered.connect(self.onRemoveScript)
w.addAction(action)
action = QAction("Update", self)
action.setToolTip("Save changes in the editor to library")
action.setShortcut(QKeySequence(QKeySequence.Save))
action.triggered.connect(self.commitChangesToLibrary)
w.addAction(action)
action = QAction("More", self, toolTip = "More actions")
new_from_file = QAction("Import a script from a file", self)
save_to_file = QAction("Save selected script to a file", self)
save_to_file.setShortcut(QKeySequence(QKeySequence.SaveAs))
new_from_file.triggered.connect(self.onAddScriptFromFile)
save_to_file.triggered.connect(self.saveScript)
menu = QMenu(w)
menu.addAction(new_from_file)
menu.addAction(save_to_file)
action.setMenu(menu)
button = w.addAction(action)
button.setPopupMode(QToolButton.InstantPopup)
w.layout().setSpacing(1)
#.........这里部分代码省略.........
示例2: OWDiscretize
# 需要导入模块: from PyQt4.QtGui import QListView [as 别名]
# 或者: from PyQt4.QtGui.QListView import setItemDelegate [as 别名]
class OWDiscretize(widget.OWWidget):
name = "Discretize"
description = "Discretize the numeric data features."
icon = "icons/Discretize.svg"
inputs = [InputSignal("Data", Orange.data.Table, "set_data",
doc="Input data table")]
outputs = [OutputSignal("Data", Orange.data.Table,
doc="Table with discretized features")]
settingsHandler = settings.DomainContextHandler()
saved_var_states = settings.ContextSetting({})
default_method = settings.Setting(2)
default_k = settings.Setting(3)
autosend = settings.Setting(True)
#: Discretization methods
Default, Leave, MDL, EqualFreq, EqualWidth, Remove, Custom = range(7)
want_main_area = False
resizing_enabled = False
def __init__(self):
super().__init__()
#: input data
self.data = None
#: Current variable discretization state
self.var_state = {}
#: Saved variable discretization settings (context setting)
self.saved_var_states = {}
self.method = 0
self.k = 5
box = gui.vBox(self.controlArea, self.tr("Default Discretization"))
self.default_bbox = rbox = gui.radioButtons(
box, self, "default_method", callback=self._default_disc_changed)
options = self.options = [
self.tr("Default"),
self.tr("Leave numeric"),
self.tr("Entropy-MDL discretization"),
self.tr("Equal-frequency discretization"),
self.tr("Equal-width discretization"),
self.tr("Remove numeric variables")
]
for opt in options[1:5]:
gui.appendRadioButton(rbox, opt)
s = gui.hSlider(gui.indentedBox(rbox),
self, "default_k", minValue=2, maxValue=10,
label="Num. of intervals:",
callback=self._default_disc_changed)
s.setTracking(False)
gui.appendRadioButton(rbox, options[-1])
vlayout = QHBoxLayout()
box = gui.widgetBox(
self.controlArea, "Individual Attribute Settings",
orientation=vlayout, spacing=8
)
# List view with all attributes
self.varview = QListView(selectionMode=QListView.ExtendedSelection)
self.varview.setItemDelegate(DiscDelegate())
self.varmodel = itemmodels.VariableListModel()
self.varview.setModel(self.varmodel)
self.varview.selectionModel().selectionChanged.connect(
self._var_selection_changed
)
vlayout.addWidget(self.varview)
# Controls for individual attr settings
self.bbox = controlbox = gui.radioButtons(
box, self, "method", callback=self._disc_method_changed
)
vlayout.addWidget(controlbox)
for opt in options[:5]:
gui.appendRadioButton(controlbox, opt)
s = gui.hSlider(gui.indentedBox(controlbox),
self, "k", minValue=2, maxValue=10,
label="Num. of intervals:",
callback=self._disc_method_changed)
s.setTracking(False)
gui.appendRadioButton(controlbox, "Remove attribute")
gui.rubber(controlbox)
controlbox.setEnabled(False)
self.controlbox = controlbox
box = gui.auto_commit(
self.controlArea, self, "autosend", "Apply",
orientation=Qt.Horizontal,
#.........这里部分代码省略.........
示例3: SortedListWidget
# 需要导入模块: from PyQt4.QtGui import QListView [as 别名]
# 或者: from PyQt4.QtGui.QListView import setItemDelegate [as 别名]
#.........这里部分代码省略.........
self._upButton = QToolButton(self)
self._upButton.setDefaultAction(self._upAction)
self._upButton.setSizePolicy(
QSizePolicy.Fixed, QSizePolicy.MinimumExpanding)
self._downAction = QAction(
"\u2193", self, toolTip="Move down")
self._downButton = QToolButton(self)
self._downButton.setDefaultAction(self._downAction)
self._downButton.setSizePolicy(
QSizePolicy.Fixed, QSizePolicy.MinimumExpanding)
vButtonLayout.addWidget(self._upButton)
vButtonLayout.addWidget(self._downButton)
gridLayout.addLayout(vButtonLayout, 0, 2, 2, 1)
hButtonLayout = QHBoxLayout()
self._addAction = QAction("+", self)
self._addButton = QToolButton(self)
self._addButton.setDefaultAction(self._addAction)
self._removeAction = QAction("-", self)
self._removeButton = QToolButton(self)
self._removeButton.setDefaultAction(self._removeAction)
hButtonLayout.addWidget(self._addButton)
hButtonLayout.addWidget(self._removeButton)
hButtonLayout.addStretch(10)
gridLayout.addLayout(hButtonLayout, 2, 0, 1, 2)
self.setLayout(gridLayout)
self._addAction.triggered.connect(self._onAddAction)
self._removeAction.triggered.connect(self._onRemoveAction)
self._upAction.triggered.connect(self._onUpAction)
self._downAction.triggered.connect(self._onDownAction)
def sizeHint(self):
size = QWidget.sizeHint(self)
return QSize(size.width(), 100)
def _onAddAction(self):
item = QStandardItem("")
item.setFlags(item.flags() ^ Qt.ItemIsDropEnabled)
self._listView.model().appendRow(item)
self._listView.setCurrentIndex(item.index())
self._listView.edit(item.index())
def _onRemoveAction(self):
current = self._listView.currentIndex()
self._listView.model().takeRow(current.row())
def _onUpAction(self):
row = self._listView.currentIndex().row()
model = self._listView.model()
if row > 0:
items = model.takeRow(row)
model.insertRow(row - 1, items)
self._listView.setCurrentIndex(model.index(row - 1, 0))
def _onDownAction(self):
row = self._listView.currentIndex().row()
model = self._listView.model()
if row < model.rowCount() and row >= 0:
items = model.takeRow(row)
if row == model.rowCount():
model.appendRow(items)
else:
model.insertRow(row + 1, items)
self._listView.setCurrentIndex(model.index(row + 1, 0))
def setModel(self, model):
""" Set a model to select items from
"""
self._model = model
self._listView.setItemDelegate(self._MyItemDelegate(self._model, self))
def addItem(self, *args):
""" Add a new entry in the list
"""
item = QStandardItem(*args)
item.setFlags(item.flags() ^ Qt.ItemIsDropEnabled)
self._listView.model().appendRow(item)
def setItems(self, items):
self._listView.model().clear()
for item in items:
self.addItem(item)
def items(self):
order = []
for row in range(self._listView.model().rowCount()):
order.append(str(self._listView.model().item(row, 0).text()))
return order
def __changed(self):
self.sortingOrderChanged.emit()
sortingOrder = property(items, setItems)
示例4: SelectionSetsWidget
# 需要导入模块: from PyQt4.QtGui import QListView [as 别名]
# 或者: from PyQt4.QtGui.QListView import setItemDelegate [as 别名]
class SelectionSetsWidget(QFrame):
"""
Widget for managing multiple stored item selections
"""
selectionModified = Signal(bool)
def __init__(self, parent):
QFrame.__init__(self, parent)
self.setContentsMargins(0, 0, 0, 0)
layout = QVBoxLayout()
layout.setContentsMargins(0, 0, 0, 0)
layout.setSpacing(1)
self._setNameLineEdit = QLineEdit(self)
layout.addWidget(self._setNameLineEdit)
self._setListView = QListView(self)
self._listModel = QStandardItemModel(self)
self._proxyModel = QSortFilterProxyModel(self)
self._proxyModel.setSourceModel(self._listModel)
self._setListView.setModel(self._proxyModel)
self._setListView.setItemDelegate(ListItemDelegate(self))
self._setNameLineEdit.textChanged.connect(
self._proxyModel.setFilterFixedString)
self._completer = QCompleter(self._listModel, self)
self._setNameLineEdit.setCompleter(self._completer)
self._listModel.itemChanged.connect(self._onSetNameChange)
layout.addWidget(self._setListView)
buttonLayout = QHBoxLayout()
self._addAction = QAction(
"+", self, toolTip="Add a new sort key")
self._updateAction = QAction(
"Update", self, toolTip="Update/save current selection")
self._removeAction = QAction(
"\u2212", self, toolTip="Remove selected sort key.")
self._addToolButton = QToolButton(self)
self._updateToolButton = QToolButton(self)
self._removeToolButton = QToolButton(self)
self._updateToolButton.setSizePolicy(
QSizePolicy.MinimumExpanding, QSizePolicy.Minimum)
self._addToolButton.setDefaultAction(self._addAction)
self._updateToolButton.setDefaultAction(self._updateAction)
self._removeToolButton.setDefaultAction(self._removeAction)
buttonLayout.addWidget(self._addToolButton)
buttonLayout.addWidget(self._updateToolButton)
buttonLayout.addWidget(self._removeToolButton)
layout.addLayout(buttonLayout)
self.setLayout(layout)
self._addAction.triggered.connect(self.addCurrentSelection)
self._updateAction.triggered.connect(self.updateSelectedSelection)
self._removeAction.triggered.connect(self.removeSelectedSelection)
self._setListView.selectionModel().selectionChanged.connect(
self._onListViewSelectionChanged)
self.selectionModel = None
self._selections = []
def sizeHint(self):
size = QFrame.sizeHint(self)
return QSize(size.width(), 200)
def _onSelectionChanged(self, selected, deselected):
self.setSelectionModified(True)
def _onListViewSelectionChanged(self, selected, deselected):
try:
index = self._setListView.selectedIndexes()[0]
except IndexError:
return
self.commitSelection(self._proxyModel.mapToSource(index).row())
def _onSetNameChange(self, item):
self.selections[item.row()].name = str(item.text())
def _setButtonStates(self, val):
self._updateToolButton.setEnabled(val)
def setSelectionModel(self, selectionModel):
if self.selectionModel:
self.selectionModel.selectionChanged.disconnect(
self._onSelectionChanged)
self.selectionModel = selectionModel
self.selectionModel.selectionChanged.connect(self._onSelectionChanged)
def addCurrentSelection(self):
item = self.addSelection(
SelectionByKey(self.selectionModel.selection(),
name="New selection",
key=(1, 2, 3, 10)))
index = self._proxyModel.mapFromSource(item.index())
#.........这里部分代码省略.........
示例5: OWDiscretize
# 需要导入模块: from PyQt4.QtGui import QListView [as 别名]
# 或者: from PyQt4.QtGui.QListView import setItemDelegate [as 别名]
class OWDiscretize(widget.OWWidget):
name = "Discretize"
description = "Discretization of continuous attributes."
icon = "icons/Discretize.svg"
inputs = [{"name": "Data",
"type": Orange.data.Table,
"handler": "set_data",
"doc": "Input data table"}]
outputs = [{"name": "Data",
"type": Orange.data.Table,
"doc": "Table with discretized features"}]
settingsHandler = settings.DomainContextHandler()
saved_var_states = settings.ContextSetting({})
default_method = settings.Setting(0)
default_k = settings.Setting(5)
# Discretization methods
Default, Leave, MDL, EqualFreq, EqualWidth, Remove, Custom = range(7)
want_main_area = False
def __init__(self, parent=None):
super().__init__(parent)
#: input data
self.data = None
#: Current variable discretization state
self.var_state = {}
#: Saved variable discretization settings (context setting)
self.saved_var_states = {}
self.method = 0
self.k = 5
box = gui.widgetBox(
self.controlArea, self.tr("Default Discretization"))
rbox = gui.radioButtons(
box, self, "default_method", callback=self._default_disc_changed)
options = [
self.tr("Default"),
self.tr("Leave continuous"),
self.tr("Entropy-MDL discretization"),
self.tr("Equal-frequency discretization"),
self.tr("Equal-width discretization"),
self.tr("Remove continuous attributes")
]
for opt in options[1:5]:
gui.appendRadioButton(rbox, opt)
gui.hSlider(gui.indentedBox(rbox),
self, "default_k", minValue=2, maxValue=10,
label="Num. of intervals:",
callback=self._default_disc_changed)
gui.appendRadioButton(rbox, options[-1])
vlayout = QHBoxLayout()
box = gui.widgetBox(
self.controlArea, "Individual Attribute Settings",
orientation=vlayout
)
# List view with all attributes
self.varview = QListView(
selectionMode=QListView.ExtendedSelection
)
self.varview.setItemDelegate(DiscDelegate())
self.varmodel = itemmodels.VariableListModel()
self.varview.setModel(self.varmodel)
self.varview.selectionModel().selectionChanged.connect(
self._var_selection_changed
)
vlayout.addWidget(self.varview)
# Controls for individual attr settings
controlbox = gui.radioButtons(
box, self, "method", callback=self._disc_method_changed
)
vlayout.addWidget(controlbox)
for opt in options[:5]:
gui.appendRadioButton(controlbox, opt)
gui.hSlider(gui.indentedBox(controlbox),
self, "k", minValue=2, maxValue=10,
label="Num. of intervals:",
callback=self._disc_method_changed)
gui.appendRadioButton(controlbox, options[-1])
gui.rubber(controlbox)
controlbox.setEnabled(False)
self.controlbox = controlbox
#.........这里部分代码省略.........
示例6: OWDataSort
# 需要导入模块: from PyQt4.QtGui import QListView [as 别名]
# 或者: from PyQt4.QtGui.QListView import setItemDelegate [as 别名]
class OWDataSort(OWWidget):
contextHandlers = {
"": DomainContextHandler(
"", ["sortroles"]
)
}
settingsList = ["autoCommit"]
def __init__(self, parent=None, signalManger=None, title="Data Sort"):
super(OWDataSort, self).__init__(parent, signalManger, title,
wantMainArea=False)
#: Mapping (feature.name, feature.var_type) to (sort_index, sort_order)
#: where sirt index is the position of the feature in the sortByModel
#: and sort_order the Qt.SortOrder flag
self.sortroles = {}
self.autoCommit = False
self._outputChanged = False
box = OWGUI.widgetBox(self.controlArea, "Sort By Features")
self.sortByView = QListView()
self.sortByView.setItemDelegate(SortParamDelegate(self))
self.sortByView.setSelectionMode(QListView.ExtendedSelection)
self.sortByView.setDragDropMode(QListView.DragDrop)
self.sortByView.setDefaultDropAction(Qt.MoveAction)
self.sortByView.viewport().setAcceptDrops(True)
self.sortByModel = VariableListModel(
flags=Qt.ItemIsEnabled | Qt.ItemIsSelectable |
Qt.ItemIsDragEnabled | Qt.ItemIsEditable
)
self.sortByView.setModel(self.sortByModel)
box.layout().addWidget(self.sortByView)
box = OWGUI.widgetBox(self.controlArea, "Unused Features")
self.unusedView = QListView()
self.unusedView.setSelectionMode(QListView.ExtendedSelection)
self.unusedView.setDragDropMode(QListView.DragDrop)
self.unusedView.setDefaultDropAction(Qt.MoveAction)
self.unusedView.viewport().setAcceptDrops(True)
self.unusedModel = VariableListModel(
flags=Qt.ItemIsEnabled | Qt.ItemIsSelectable |
Qt.ItemIsDragEnabled
)
self.unusedView.setModel(self.unusedModel)
box.layout().addWidget(self.unusedView)
box = OWGUI.widgetBox(self.controlArea, "Output")
cb = OWGUI.checkBox(box, self, "autoCommit", "Auto commit")
b = OWGUI.button(box, self, "Commit", callback=self.commit)
OWGUI.setStopper(self, b, cb, "_outputChanged", callback=self.commit)
def setData(self, data):
"""
Set the input data.
"""
self._storeRoles()
self.closeContext("")
self.data = data
if data is not None:
self.openContext("", data)
domain = data.domain
features = (domain.variables + domain.class_vars +
domain.get_metas().values())
sort_by = []
unused = []
for feat in features:
hint = self.sortroles.get((feat.name, feat.var_type), None)
if hint is not None:
index, order = hint
sort_by.append((feat, index, order))
else:
unused.append(feat)
sort_by = sorted(sort_by, key=itemgetter(1))
self.sortByModel[:] = [feat for feat, _, _ in sort_by]
self.unusedModel[:] = unused
# Restore the sort orders
for i, (_, _, order) in enumerate(sort_by):
index = self.sortByModel.index(i, 0)
self.sortByModel.setData(index, order, SortOrderRole)
self.commit()
def _invalidate(self):
if self.autoCommit:
self.commit()
else:
self._outputChanged = True
def _sortingParams(self):
params = []
#.........这里部分代码省略.........
示例7: OWPythonScript
# 需要导入模块: from PyQt4.QtGui import QListView [as 别名]
# 或者: from PyQt4.QtGui.QListView import setItemDelegate [as 别名]
class OWPythonScript(OWWidget):
settingsList = ["libraryListSource", "currentScriptIndex",
"splitterState", "auto_execute"]
def __init__(self, parent=None, signalManager=None):
OWWidget.__init__(self, parent, signalManager, 'Python Script')
self.inputs = [("in_data", Orange.data.Table, self.setExampleTable,
Default),
("in_distance", Orange.misc.SymMatrix,
self.setDistanceMatrix, Default),
("in_learner", Orange.core.Learner, self.setLearner,
Default),
("in_classifier", Orange.core.Classifier,
self.setClassifier, Default),
("in_object", object, self.setObject)]
self.outputs = [("out_data", Orange.data.Table),
("out_distance", Orange.misc.SymMatrix),
("out_learner", Orange.core.Learner),
("out_classifier", Orange.core.Classifier, Dynamic),
("out_object", object, Dynamic)]
self.in_data = None
self.in_distance = None
self.in_learner = None
self.in_classifier = None
self.in_object = None
self.auto_execute = False
self.libraryListSource = [Script("Hello world",
"print 'Hello world'\n")]
self.currentScriptIndex = 0
self.splitterState = None
self.loadSettings()
for s in self.libraryListSource:
s.flags = 0
self._cachedDocuments = {}
self.infoBox = OWGUI.widgetBox(self.controlArea, 'Info')
OWGUI.label(
self.infoBox, self,
"<p>Execute python script.</p><p>Input variables:<ul><li> " +
"<li>".join(t[0] for t in self.inputs) +
"</ul></p><p>Output variables:<ul><li>" +
"<li>".join(t[0] for t in self.outputs) +
"</ul></p>"
)
self.libraryList = PyListModel(
[], self,
flags=Qt.ItemIsSelectable | Qt.ItemIsEnabled | Qt.ItemIsEditable
)
self.libraryList.wrap(self.libraryListSource)
self.controlBox = OWGUI.widgetBox(self.controlArea, 'Library')
self.controlBox.layout().setSpacing(1)
self.libraryView = QListView(
editTriggers=QListView.DoubleClicked |
QListView.EditKeyPressed,
sizePolicy=QSizePolicy(QSizePolicy.Ignored,
QSizePolicy.Preferred)
)
self.libraryView.setItemDelegate(ScriptItemDelegate(self))
self.libraryView.setModel(self.libraryList)
self.libraryView.selectionModel().selectionChanged.connect(
self.onSelectedScriptChanged
)
self.controlBox.layout().addWidget(self.libraryView)
w = ModelActionsWidget()
self.addNewScriptAction = action = QAction("+", self)
action.setToolTip("Add a new script to the library")
action.triggered.connect(self.onAddScript)
w.addAction(action)
action = QAction(unicodedata.lookup("MINUS SIGN"), self)
action.setToolTip("Remove script from library")
action.triggered.connect(self.onRemoveScript)
w.addAction(action)
action = QAction("Update", self)
action.setToolTip("Save changes in the editor to library")
action.setShortcut(QKeySequence(QKeySequence.Save))
action.triggered.connect(self.commitChangesToLibrary)
w.addAction(action)
action = QAction("More", self, toolTip="More actions")
new_from_file = QAction("Import a script from a file", self)
save_to_file = QAction("Save selected script to a file", self)
save_to_file.setShortcut(QKeySequence(QKeySequence.SaveAs))
#.........这里部分代码省略.........