def __init__(self, master, vtk_table, on_change_color_table=None, colors=None): """ Parameters: ----------- vtk_table : the `tvtk.LookupTable` or `tvtk.VolumeProperty` object to set. on_change_color_table : A callback called when the color table changes. colors : list of 'rgb', 'hsv', 'h', 's', 'v', 'a' (Default : ['rgb', 'hsv', 'a']) 'rgb' creates one panel to edit Red, Green and Blue colors. 'hsv' creates one panel to edit Hue, Saturation and Value. 'h', 's', 'v', 'r', 'g', 'b', 'a' separately specified creates different panels for each. """ GradientEditorWidget.__init__(self, master, vtk_table, on_change_color_table, colors) QtGui.QWidget.__init__(self, master) gradient_preview_width = self.gradient_preview_width gradient_preview_height = self.gradient_preview_height channel_function_width = self.channel_function_width channel_function_height = self.channel_function_height # set up all the panels in a grid # 6x2 size: 6 rows, 2 columns... grid = QtGui.QGridLayout() grid.setColumnStretch(0, 0) grid.setColumnStretch(1, 1) # "Gradient Viewer" panel, in position (0,1) for sizer self.gradient_control = QGradientControl(self, self.gradient_table, gradient_preview_width, gradient_preview_height) self.setToolTip('Right click for menu') grid.addWidget(QtGui.QLabel("", self), 0, 0) grid.addWidget(self.gradient_control, 0, 1) # Setup the context menu to fire for the Gradient control alone. gc = self.gradient_control gc.setContextMenuPolicy(QtCore.Qt.CustomContextMenu) gc.customContextMenuRequested.connect(self.contextMenuEventOnGradient) # Add the function controls: function_controls = self.function_controls editor_data = self.editor_data row = 1 for color in self.colors: data = editor_data[color] control = QFunctionControl(self, self.gradient_table, color, channel_function_width, channel_function_height) txt = data[0] + self.tooltip_text control.setToolTip(txt) # Add name of editor (to left side of editor) grid.addWidget(QtGui.QLabel(data[1], self), row, 0) # Add the "RGB" control point editor grid.addWidget(control, row, 1) function_controls.append(control) row += 1 # The status text. self.text = QtGui.QLabel('status', self) grid.addWidget(self.text, row, 0, 1, 2) self.setLayout(grid) self.show()
def __init__(self, master, vtk_table, on_change_color_table=None, colors=None): """ Parameters: ----------- vtk_table : the `tvtk.LookupTable` or `tvtk.VolumeProperty` object to set. on_change_color_table : A callback called when the color table changes. colors : list of 'rgb', 'hsv', 'h', 's', 'v', 'a' (Default : ['rgb', 'hsv', 'a']) 'rgb' creates one panel to edit Red, Green and Blue colors. 'hsv' creates one panel to edit Hue, Saturation and Value. 'h', 's', 'v', 'r', 'g', 'b', 'a' separately specified creates different panels for each. """ GradientEditorWidget.__init__(self, master, vtk_table, on_change_color_table, colors) wx.Panel.__init__(self, master) gradient_preview_width = self.gradient_preview_width gradient_preview_height = self.gradient_preview_height channel_function_width = self.channel_function_width channel_function_height = self.channel_function_height # set up all the panels in a gridbagsizer (i.e. a big grid) # 6x2 size: 6 rows, 2 columns... sizer = wx.GridBagSizer(2, 2) # "Gradient Viewer" panel, in position (0,1) for sizer self.gradient_control = wxGradientControl(self, self.gradient_table, gradient_preview_width, gradient_preview_height) tt = wx.ToolTip('Right click for menu') self.gradient_control.Bind(wx.EVT_CONTEXT_MENU, self.on_gradient_menu) self.gradient_control.SetToolTip(tt) sizer.Add(self.gradient_control, pos=(0,1)) # Add the function controls: function_controls = self.function_controls editor_data = self.editor_data row = 1 for color in self.colors: data = editor_data[color] control = wxFunctionControl(self, self.gradient_table, color, channel_function_width, channel_function_height) txt = data[0] + self.tooltip_text control.SetToolTip(wx.ToolTip(txt)) # Add name of editor (to left side of editor) sizer.Add(wx.StaticText(self, -1, data[1]), pos=(row, 0), flag=wx.ALIGN_CENTER|wx.ALL) # Add the "RGB" control point editor sizer.Add(control, pos=(row, 1)) function_controls.append(control) row += 1 # The status text. self.text = wx.StaticText(self, -1, 'status') sizer.Add(self.text, (row,0), (row,2)) row += 1 # set the appropriate sizer. sizer.SetSizeHints(self) self.SetSizerAndFit(sizer)
def __init__(self, master, vtk_table, on_change_color_table=None, colors=None): """ Parameters: ----------- vtk_table : the `tvtk.LookupTable` or `tvtk.VolumeProperty` object to set. on_change_color_table : A callback called when the color table changes. colors : list of 'rgb', 'hsv', 'h', 's', 'v', 'a' (Default : ['rgb', 'hsv', 'a']) 'rgb' creates one panel to edit Red, Green and Blue colors. 'hsv' creates one panel to edit Hue, Saturation and Value. 'h', 's', 'v', 'r', 'g', 'b', 'a' separately specified creates different panels for each. """ GradientEditorWidget.__init__(self, master, vtk_table, on_change_color_table, colors) wx.Panel.__init__(self, master) gradient_preview_width = self.gradient_preview_width gradient_preview_height = self.gradient_preview_height channel_function_width = self.channel_function_width channel_function_height = self.channel_function_height # set up all the panels in a gridbagsizer (i.e. a big grid) # 6x2 size: 6 rows, 2 columns... sizer = wx.GridBagSizer(2, 2) # "Gradient Viewer" panel, in position (0,1) for sizer self.gradient_control = wxGradientControl(self, self.gradient_table, gradient_preview_width, gradient_preview_height) tt = wx.ToolTip('Right click for menu') self.gradient_control.Bind(wx.EVT_CONTEXT_MENU, self.on_gradient_menu) self.gradient_control.SetToolTip(tt) sizer.Add(self.gradient_control, pos=(0, 1)) # Add the function controls: function_controls = self.function_controls editor_data = self.editor_data row = 1 for color in self.colors: data = editor_data[color] control = wxFunctionControl(self, self.gradient_table, color, channel_function_width, channel_function_height) txt = data[0] + self.tooltip_text control.SetToolTip(wx.ToolTip(txt)) # Add name of editor (to left side of editor) sizer.Add(wx.StaticText(self, -1, data[1]), pos=(row, 0), flag=wx.ALIGN_CENTER | wx.ALL) # Add the "RGB" control point editor sizer.Add(control, pos=(row, 1)) function_controls.append(control) row += 1 # The status text. self.text = wx.StaticText(self, -1, 'status') sizer.Add(self.text, (row, 0), (row, 2)) row += 1 # set the appropriate sizer. sizer.SetSizeHints(self) self.SetSizerAndFit(sizer)