本文整理汇总了Python中vistrails.gui.paramexplore.pe_pipeline.QAnnotatedPipelineView类的典型用法代码示例。如果您正苦于以下问题:Python QAnnotatedPipelineView类的具体用法?Python QAnnotatedPipelineView怎么用?Python QAnnotatedPipelineView使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了QAnnotatedPipelineView类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: QParameterView
class QParameterView(QtGui.QWidget, QVistrailsPaletteInterface):
"""
QParameterView contains the parameter exploration properties and the
parameter palette
"""
def __init__(self, controller=None, parent=None):
QtGui.QWidget.__init__(self, parent)
self.set_title('Pipeline Methods')
self.controller = None
vLayout = QtGui.QVBoxLayout()
vLayout.setMargin(0)
vLayout.setSpacing(5)
self.setLayout(vLayout)
self.toggleUnsetParameters = QtGui.QCheckBox('Show Unset Parameters')
vLayout.addWidget(self.toggleUnsetParameters, 0, QtCore.Qt.AlignRight)
self.parameterWidget = QParameterWidget()
vLayout.addWidget(self.parameterWidget)
self.treeWidget = self.parameterWidget.treeWidget
self.pipeline_view = QAnnotatedPipelineView()
self.pipeline_view.setReadOnlyMode(True)
vLayout.addWidget(self.pipeline_view)
vLayout.setStretch(0,0)
vLayout.setStretch(1,1)
vLayout.setStretch(2,0)
self.connect(self.toggleUnsetParameters, QtCore.SIGNAL("toggled(bool)"),
self.parameterWidget.treeWidget.toggleUnsetParameters)
self.set_controller(controller)
def set_controller(self, controller):
if self.controller == controller:
return
self.controller = controller
self.pipeline_view.set_controller(controller)
if self.controller is not None:
self.set_pipeline(controller.current_pipeline)
else:
self.set_pipeline(None)
def set_pipeline(self, pipeline):
if self.controller is None:
return
self.pipeline = pipeline
self.parameterWidget.set_pipeline(pipeline, self.controller)
if pipeline:
self.pipeline_view.scene().setupScene(pipeline)
else:
self.pipeline_view.scene().clear()
self.pipeline_view.updateAnnotatedIds(pipeline)
示例2: setCellData
def setCellData(self, cellType, cellId):
""" setCellData(cellType: str, cellId: int) -> None Create an
image based on the cell type and id. Then assign it to the
label. If cellType is None, the cell will be drawn with
transparent background. If cellType is '', the cell will be
drawn with the caption 'Empty'. Otherwise, the cell will be
drawn with white background containing cellType as caption and
a small rounded shape on the lower right painted with cellId
"""
self.type = cellType
self.id = cellId
size = QtCore.QSize(*CurrentTheme.VIRTUAL_CELL_LABEL_SIZE)
image = QtGui.QImage(size.width() + 12,
size.height()+ 12,
QtGui.QImage.Format_ARGB32_Premultiplied)
image.fill(0)
font = QtGui.QFont()
font.setStyleStrategy(QtGui.QFont.ForceOutline)
painter = QtGui.QPainter()
painter.begin(image)
painter.setRenderHint(QtGui.QPainter.Antialiasing)
if self.type==None:
painter.setPen(QtCore.Qt.NoPen)
painter.setBrush(QtCore.Qt.NoBrush)
else:
if self.type=='':
painter.setPen(QtCore.Qt.gray)
painter.setBrush(QtCore.Qt.NoBrush)
else:
painter.setPen(QtCore.Qt.black)
painter.setBrush(QtCore.Qt.lightGray)
painter.drawRoundRect(QtCore.QRectF(0.5, 0.5, image.width()-1,
image.height()-1), 25, 25)
painter.setFont(font)
if self.type!=None:
painter.drawText(QtCore.QRect(QtCore.QPoint(6, 6), size),
QtCore.Qt.AlignCenter | QtCore.Qt.TextWrapAnywhere,
split_camel_case(self.type))
# Draw the lower right corner number if there is an id
if self.id>=0 and self.type:
QAnnotatedPipelineView.drawId(painter, image.rect(), self.id,
QtCore.Qt.AlignRight |
QtCore.Qt.AlignBottom)
painter.end()
self.setPixmap(QtGui.QPixmap.fromImage(image))
示例3: paint
def paint(self, painter, option, index):
""" painter(painter: QPainter, option QStyleOptionViewItem,
index: QModelIndex) -> None
Repaint the top-level item to have a button-look style
"""
model = index.model()
if (model.parent(index).isValid()==False or
model.parent(index).parent().isValid()==False):
style = self.treeView.style()
r = option.rect
textrect = QtCore.QRect(r.left() + 10,
r.top(),
r.width() - 10,
r.height())
font = painter.font()
font.setBold(True)
painter.setFont(font)
text = option.fontMetrics.elidedText(
model.data(index, QtCore.Qt.DisplayRole),
QtCore.Qt.ElideMiddle,
textrect.width()-10)
style.drawItemText(painter,
textrect,
QtCore.Qt.AlignLeft,
option.palette,
self.treeView.isEnabled(),
text)
painter.setPen(QtGui.QPen(QtCore.Qt.black))
fm = QtGui.QFontMetrics(font)
size = fm.size(QtCore.Qt.TextSingleLine, text)
#painter.drawLine(textrect.left()-5,
# textrect.bottom()-1,
# textrect.left()+size.width()+5,
# textrect.bottom()-1)
annotatedId = model.data(index, QtCore.Qt.UserRole+1)
if annotatedId:
idRect = QtCore.QRect(
QtCore.QPoint(textrect.left()+size.width()+5,
textrect.top()),
textrect.bottomRight())
QAnnotatedPipelineView.drawId(painter, idRect,
annotatedId,
QtCore.Qt.AlignLeft |
QtCore.Qt.AlignVCenter)
else:
QtGui.QItemDelegate.paint(self, painter, option, index)
示例4: __init__
def __init__(self, parent=None):
""" QParameterExplorationTab(parent: QWidget)
-> QParameterExplorationTab
Make it a main window with dockable area and a
QParameterExplorationTable
"""
QDockContainer.__init__(self, parent)
self.setWindowTitle('Parameter Exploration')
self.toolWindow().setFeatures(QtGui.QDockWidget.NoDockWidgetFeatures)
self.toolWindow().hide()
self.peWidget = QParameterExplorationWidget()
self.setCentralWidget(self.peWidget)
self.connect(self.peWidget.table,
QtCore.SIGNAL('exploreChange(bool)'),
self.exploreChange)
self.paramView = QParameterView(self)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea,
self.paramView.toolWindow())
self.annotatedPipelineView = QAnnotatedPipelineView(self)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea,
self.annotatedPipelineView.toolWindow())
self.virtualCell = QVirtualCellWindow(self)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea,
self.virtualCell.toolWindow())
self.controller = None
self.currentVersion = -1
示例5: __init__
def __init__(self, controller=None, parent=None):
QtGui.QWidget.__init__(self, parent)
self.set_title('Pipeline Methods')
self.controller = controller
vLayout = QtGui.QVBoxLayout()
vLayout.setMargin(0)
vLayout.setSpacing(5)
self.setLayout(vLayout)
self.toggleUnsetParameters = QtGui.QCheckBox('Show Unset Parameters')
vLayout.addWidget(self.toggleUnsetParameters, 0, QtCore.Qt.AlignRight)
self.parameterWidget = QParameterWidget()
vLayout.addWidget(self.parameterWidget)
self.treeWidget = self.parameterWidget.treeWidget
self.pipeline_view = QAnnotatedPipelineView()
vLayout.addWidget(self.pipeline_view)
vLayout.setStretch(0,0)
vLayout.setStretch(1,1)
vLayout.setStretch(2,0)
self.connect(self.toggleUnsetParameters, QtCore.SIGNAL("toggled(bool)"),
self.parameterWidget.treeWidget.toggleUnsetParameters)
示例6: __init__
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.set_title("Mashup Pipeline")
layout = QtGui.QVBoxLayout()
self.parameter_panel = QAliasParameterPanel()
font = QtGui.QFont("Arial", 11, QtGui.QFont.Normal)
font.setItalic(True)
label = QtGui.QLabel("Double-click a parameter to change alias")
label.setFont(font)
param_group = QtGui.QGroupBox(self.parameter_panel.windowTitle())
g_layout = QtGui.QVBoxLayout()
g_layout.setMargin(0)
g_layout.setSpacing(2)
g_layout.addWidget(label)
g_layout.addWidget(self.parameter_panel)
param_group.setLayout(g_layout)
layout.addWidget(param_group)
self.pipeline_view = QAnnotatedPipelineView()
self.pipeline_view.setReadOnlyMode(True)
p_view_group = QtGui.QGroupBox(self.pipeline_view.windowTitle())
g_layout = QtGui.QVBoxLayout()
g_layout.setMargin(0)
g_layout.setSpacing(0)
g_layout.addWidget(self.pipeline_view)
p_view_group.setLayout(g_layout)
layout.addWidget(p_view_group)
self.setLayout(layout)
self.parameter_panel.treeWidget.aliasChanged.connect(self.aliasChanged)
示例7: QParameterExplorationTab
class QParameterExplorationTab(QDockContainer, QToolWindowInterface):
"""
QParameterExplorationTab is a tab containing different widgets
related to parameter exploration
"""
explorationId = 0
def __init__(self, parent=None):
""" QParameterExplorationTab(parent: QWidget)
-> QParameterExplorationTab
Make it a main window with dockable area and a
QParameterExplorationTable
"""
QDockContainer.__init__(self, parent)
self.setWindowTitle('Parameter Exploration')
self.toolWindow().setFeatures(QtGui.QDockWidget.NoDockWidgetFeatures)
self.toolWindow().hide()
self.peWidget = QParameterExplorationWidget()
self.setCentralWidget(self.peWidget)
self.connect(self.peWidget.table,
QtCore.SIGNAL('exploreChange(bool)'),
self.exploreChange)
self.paramView = QParameterView(self)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea,
self.paramView.toolWindow())
self.annotatedPipelineView = QAnnotatedPipelineView(self)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea,
self.annotatedPipelineView.toolWindow())
self.virtualCell = QVirtualCellWindow(self)
self.addDockWidget(QtCore.Qt.RightDockWidgetArea,
self.virtualCell.toolWindow())
self.controller = None
self.currentVersion = -1
def addViewActionsToMenu(self, menu):
"""addViewActionsToMenu(menu: QMenu) -> None
Add toggle view actions to menu
"""
menu.addAction(self.paramView.toolWindow().toggleViewAction())
menu.addAction(self.annotatedPipelineView.toolWindow().toggleViewAction())
menu.addAction(self.virtualCell.toolWindow().toggleViewAction())
def removeViewActionsFromMenu(self, menu):
"""removeViewActionsFromMenu(menu: QMenu) -> None
Remove toggle view actions from menu
"""
menu.removeAction(self.paramView.toolWindow().toggleViewAction())
menu.removeAction(self.annotatedPipelineView.toolWindow().toggleViewAction())
menu.removeAction(self.virtualCell.toolWindow().toggleViewAction())
def setController(self, controller):
""" setController(controller: VistrailController) -> None
Assign a controller to the parameter exploration tab
"""
self.controller = controller
def getParameterExploration(self):
""" getParameterExploration() -> string
Generates an XML string that represents the current
parameter exploration, and which can be loaded with
setParameterExploration().
"""
# Construct xml for persisting parameter exploration
escape_dict = { "'":"'", '"':'"', '\n':'
' }
timestamp = strftime(current_time(), '%Y-%m-%d %H:%M:%S')
# TODO: For now, we use the timestamp as the 'name' - Later, we should set 'name' based on a UI input field
xml = '\t<paramexp dims="%s" layout="%s" date="%s" name="%s">' % (str(self.peWidget.table.label.getCounts()), str(self.virtualCell.getConfiguration()[2]), timestamp, timestamp)
for i in xrange(self.peWidget.table.layout().count()):
pEditor = self.peWidget.table.layout().itemAt(i).widget()
if pEditor and isinstance(pEditor, QParameterSetEditor):
firstParam = True
for paramWidget in pEditor.paramWidgets:
paramInfo = paramWidget.param
interpolator = paramWidget.editor.stackedEditors.currentWidget()
intType = interpolator.exploration_name
# Write function tag prior to the first parameter of the function
if firstParam:
xml += '\n\t\t<function id="%s" alias="%s" name="%s">' % (paramInfo.parent_id, paramInfo.is_alias, pEditor.info[0])
firstParam = False
# Write parameter tag
xml += '\n\t\t\t<param id="%s" dim="%s" interp="%s"' % (paramInfo.id, paramWidget.getDimension(), intType)
if intType == 'Linear Interpolation':
xml += ' min="%s" max="%s"' % (interpolator.fromEdit.get_value(), interpolator.toEdit.get_value())
elif intType == 'List':
xml += ' values="%s"' % escape(str(interpolator._str_values), escape_dict)
elif intType == 'User-defined Function':
xml += ' code="%s"' % escape(interpolator.function, escape_dict)
xml += '/>'
xml += '\n\t\t</function>'
#.........这里部分代码省略.........
示例8: QAliasParameterView
class QAliasParameterView(QtGui.QWidget, QVistrailsPaletteInterface):
def __init__(self, parent=None):
QtGui.QWidget.__init__(self, parent)
self.set_title("Mashup Pipeline")
layout = QtGui.QVBoxLayout()
self.parameter_panel = QAliasParameterPanel()
font = QtGui.QFont("Arial", 11, QtGui.QFont.Normal)
font.setItalic(True)
label = QtGui.QLabel("Double-click a parameter to change alias")
label.setFont(font)
param_group = QtGui.QGroupBox(self.parameter_panel.windowTitle())
g_layout = QtGui.QVBoxLayout()
g_layout.setMargin(0)
g_layout.setSpacing(2)
g_layout.addWidget(label)
g_layout.addWidget(self.parameter_panel)
param_group.setLayout(g_layout)
layout.addWidget(param_group)
self.pipeline_view = QAnnotatedPipelineView()
self.pipeline_view.setReadOnlyMode(True)
p_view_group = QtGui.QGroupBox(self.pipeline_view.windowTitle())
g_layout = QtGui.QVBoxLayout()
g_layout.setMargin(0)
g_layout.setSpacing(0)
g_layout.addWidget(self.pipeline_view)
p_view_group.setLayout(g_layout)
layout.addWidget(p_view_group)
self.setLayout(layout)
self.parameter_panel.treeWidget.aliasChanged.connect(self.aliasChanged)
def updateMshpController(self, mshpController):
from vistrails.gui.vistrails_window import _app
self.mshpController = mshpController
self.parameter_panel.set_pipeline(self.mshpController.vtPipeline)
self.pipeline_view.set_controller(self.mshpController.vtController)
self.mshpController.vtController.current_pipeline_view = self.pipeline_view
self.pipeline_view.scene().current_pipeline = self.mshpController.vtPipeline
self.mshpController.vtController.current_pipeline = self.mshpController.vtPipeline
# print "**** should update mashup pipeline view "
# self.pipeline_view.scene().setupScene(self.mshpController.vtPipeline)
self.pipeline_view.scene().clear()
self.pipeline_view.version_changed()
self.pipeline_view.updateAnnotatedIds(self.mshpController.vtPipeline)
# _app.notify('mashup_pipeline_view_set')
def updateMshpVersion(self, version):
# print "will update alias param view"
self.parameter_panel.set_pipeline(self.mshpController.vtPipeline)
self.pipeline_view.version_changed()
def zoomToFit(self):
if self.pipeline_view:
self.pipeline_view.zoomToFit()
def aliasChanged(self, param):
from vistrails.gui.vistrails_window import _app
_app.notify("alias_changed", param)