Module qimview.parameters.numeric_parameter_gui
Expand source code
from ..utils.qt_imports import QtWidgets, QtCore
class NumericParameterGui(QtWidgets.QSlider):
"""
For the moment, it can only be a slider with associated text
"""
def __init__(self, name, param, callback, layout=None, parent_name=""):
QtWidgets.QSlider.__init__(self, QtCore.Qt.Horizontal)
self.name = name
self.param = param
self.callback = callback
self.event_recorder = None
self.parent_name = parent_name
self.widget_name = f"slider_{self.parent_name}_{self.name}"
self.created = False
self.decimals = 2
if layout is not None:
self.create()
self.add_to_layout(layout)
def set_event_recorder(self, evtrec):
self.event_recorder = evtrec
if self.event_recorder is not None:
self.event_recorder.register_widget(id(self), self.widget_name)
def register_event_player(self, event_player):
event_player.register_widget(self.widget_name, self)
def create(self, moved_callback=False):
self.label = QtWidgets.QLabel("")
self.setRange(self.param.range[0], self.param.range[1])
self.setValue(self.param.value)
self.changed()
if moved_callback:
self.sliderMoved.connect(lambda: self.changed(self.callback))
else:
self.valueChanged.connect(lambda: self.changed(self.callback))
self.created = True
def add_to_layout(self, layout):
if not self.created:
self.create()
layout.addWidget(self.label)
layout.addWidget(self)
def reset(self):
self.setValue(self.param.default_value)
def changed(self, callback=None):
self.param.int = int(self.value())
self.label.setText(f"{self.name} {self.param.float:0.{self.decimals}f}")
if callback is not None:
callback()
def mouseDoubleClickEvent(self, evt):
self.reset()
def event(self, evt):
if self.event_recorder is not None:
if evt.spontaneous():
self.event_recorder.store_event(self, evt)
return QtWidgets.QSlider.event(self, evt)
Classes
class NumericParameterGui (name, param, callback, layout=None, parent_name='')-
For the moment, it can only be a slider with associated text
init(self, orientation: PySide6.QtCore.Qt.Orientation, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None init(self, parent: Optional[PySide6.QtWidgets.QWidget] = None) -> None
Initialize self. See help(type(self)) for accurate signature.
Expand source code
class NumericParameterGui(QtWidgets.QSlider): """ For the moment, it can only be a slider with associated text """ def __init__(self, name, param, callback, layout=None, parent_name=""): QtWidgets.QSlider.__init__(self, QtCore.Qt.Horizontal) self.name = name self.param = param self.callback = callback self.event_recorder = None self.parent_name = parent_name self.widget_name = f"slider_{self.parent_name}_{self.name}" self.created = False self.decimals = 2 if layout is not None: self.create() self.add_to_layout(layout) def set_event_recorder(self, evtrec): self.event_recorder = evtrec if self.event_recorder is not None: self.event_recorder.register_widget(id(self), self.widget_name) def register_event_player(self, event_player): event_player.register_widget(self.widget_name, self) def create(self, moved_callback=False): self.label = QtWidgets.QLabel("") self.setRange(self.param.range[0], self.param.range[1]) self.setValue(self.param.value) self.changed() if moved_callback: self.sliderMoved.connect(lambda: self.changed(self.callback)) else: self.valueChanged.connect(lambda: self.changed(self.callback)) self.created = True def add_to_layout(self, layout): if not self.created: self.create() layout.addWidget(self.label) layout.addWidget(self) def reset(self): self.setValue(self.param.default_value) def changed(self, callback=None): self.param.int = int(self.value()) self.label.setText(f"{self.name} {self.param.float:0.{self.decimals}f}") if callback is not None: callback() def mouseDoubleClickEvent(self, evt): self.reset() def event(self, evt): if self.event_recorder is not None: if evt.spontaneous(): self.event_recorder.store_event(self, evt) return QtWidgets.QSlider.event(self, evt)Ancestors
- PySide6.QtWidgets.QSlider
- PySide6.QtWidgets.QAbstractSlider
- PySide6.QtWidgets.QWidget
- PySide6.QtCore.QObject
- PySide6.QtGui.QPaintDevice
- Shiboken.Object
Class variables
var staticMetaObject
Methods
def add_to_layout(self, layout)-
Expand source code
def add_to_layout(self, layout): if not self.created: self.create() layout.addWidget(self.label) layout.addWidget(self) def changed(self, callback=None)-
Expand source code
def changed(self, callback=None): self.param.int = int(self.value()) self.label.setText(f"{self.name} {self.param.float:0.{self.decimals}f}") if callback is not None: callback() def create(self, moved_callback=False)-
create(self, arg__1: int = 0, initializeWindow: bool = True, destroyOldWindow: bool = True) -> None
Expand source code
def create(self, moved_callback=False): self.label = QtWidgets.QLabel("") self.setRange(self.param.range[0], self.param.range[1]) self.setValue(self.param.value) self.changed() if moved_callback: self.sliderMoved.connect(lambda: self.changed(self.callback)) else: self.valueChanged.connect(lambda: self.changed(self.callback)) self.created = True def event(self, evt)-
event(self, event: PySide6.QtCore.QEvent) -> bool
Expand source code
def event(self, evt): if self.event_recorder is not None: if evt.spontaneous(): self.event_recorder.store_event(self, evt) return QtWidgets.QSlider.event(self, evt) def mouseDoubleClickEvent(self, evt)-
mouseDoubleClickEvent(self, event: PySide6.QtGui.QMouseEvent) -> None
Expand source code
def mouseDoubleClickEvent(self, evt): self.reset() def register_event_player(self, event_player)-
Expand source code
def register_event_player(self, event_player): event_player.register_widget(self.widget_name, self) def reset(self)-
Expand source code
def reset(self): self.setValue(self.param.default_value) def set_event_recorder(self, evtrec)-
Expand source code
def set_event_recorder(self, evtrec): self.event_recorder = evtrec if self.event_recorder is not None: self.event_recorder.register_widget(id(self), self.widget_name)