示例#1
0
文件: thoth.py 项目: fbianco/thoth
 def __init__(self, parent=None):
     QObject.__init__(self, parent)
     self.connect(self.opp.QProxy, SIGNAL("new_item_computed"),
             self.register_item)
     self.connect(self.opp.QProxy, SIGNAL("new_window"),
             self.register_window)
     self.items = []
     self.windows = []
示例#2
0
 def __init__(self, parent=None):
     QObject.__init__(self, parent)
     self.connect(self.opp.QProxy, SIGNAL("new_item_computed"),
                  self.register_item)
     self.connect(self.opp.QProxy, SIGNAL("new_window"),
                  self.register_window)
     self.items = []
     self.windows = []
示例#3
0
 def __init__(self, imanager):
     QObject.__init__(self)
     self._plmanager = None
     self._cpmanager = None
     self._immanager = imanager
     self._algorithms = []
     self._algolist = dict()
     self._menu = QMenu(_("Algorithms"))
     self.init_plugin_manager()
     self.get_actions()
     self.get_widgets()
     self._databases = dict()
     pass
示例#4
0
 def create_widgets(self, parent, refresh_callback):
     self._refresh_callback = refresh_callback
     self.prefix_label = QLabel()
     font = self.prefix_label.font()
     font.setPointSize(font.pointSize() + self._size_offset)
     self.prefix_label.setFont(font)
     self.button = QPushButton()
     self.button.setIcon(get_icon('settings.png'))
     self.button.setToolTip(
         _("Edit '%s' fit parameter properties") % self.name)
     QObject.connect(self.button, SIGNAL('clicked()'),
                     lambda: self.edit_param(parent))
     self.lineedit = QLineEdit()
     QObject.connect(self.lineedit, SIGNAL('editingFinished()'),
                     self.line_editing_finished)
     self.unit_label = QLabel(self.unit)
     self.slider = QSlider()
     self.slider.setOrientation(Qt.Horizontal)
     self.slider.setRange(0, self.steps - 1)
     QObject.connect(self.slider, SIGNAL("valueChanged(int)"),
                     self.slider_value_changed)
     self.update(refresh=False)
     self.add_widgets([
         self.prefix_label, self.lineedit, self.unit_label, self.slider,
         self.button
     ])
示例#5
0
文件: fit.py 项目: HaMF/guiqwt
 def create_widgets(self, parent, refresh_callback):
     self._refresh_callback = refresh_callback
     self.prefix_label = QLabel()
     font = self.prefix_label.font()
     font.setPointSize(font.pointSize()+self._size_offset)
     self.prefix_label.setFont(font)
     self.button = QPushButton()
     self.button.setIcon(get_icon('settings.png'))
     self.button.setToolTip(
                     _("Edit '%s' fit parameter properties") % self.name)
     QObject.connect(self.button, SIGNAL('clicked()'),
                     lambda: self.edit_param(parent))
     self.lineedit = QLineEdit()
     QObject.connect(self.lineedit, SIGNAL('editingFinished()'),
                     self.line_editing_finished)
     self.unit_label = QLabel(self.unit)
     self.slider = QSlider()
     self.slider.setOrientation(Qt.Horizontal)
     self.slider.setRange(0, self.steps-1)
     QObject.connect(self.slider, SIGNAL("valueChanged(int)"),
                     self.slider_value_changed)
     self.update(refresh=False)
     self.add_widgets([self.prefix_label, self.lineedit, self.unit_label,
                       self.slider, self.button])
示例#6
0
class OperationProxy():
    """This class allow to perform computation directly on curve, image items
       like if they were numpy.ndarray. All the performed computation are stored
       in the parameter processing of the item. Any operation return a new item,
       it avoid overwritting raw data.
    """
    QProxy = QObject()

    def __init__(self, parent=None):
        self.__baseclass__ = None  # undefined

    def __add__(self, a):
        if isinstance(a, self.__baseclass__):
            return self.__baseclass__(self.measurement + a.measurement)
        elif isinstance(a, (int, float)):
            return self.__baseclass__(self.measurement + a)
        else:
            raise TypeError, _('Unsupported operand type')

    def __mul__(self, a):
        return self.__baseclass__(self.measurement * a)

    def __div__(self, a):
        return self.__baseclass__(self.measurement / a)

    def __truediv__(self, a):
        return self.__baseclass__(self.measurement / a)

    def __floordiv__(self, a):
        return self.__baseclass__(self.measurement // a)

    def __getitem__(self, key):
        return self.measurement[key]

    def __setitem__(self, key, value):
        self.measurement[key] = value

    def __len__(self):
        return len(self.measurement)

    def get_rawdata(self):
        return self.measurement['rawdata']

    def get_scale(self):
        return self.measurement['scale']

    def get_shape(self):
        return self.measurement['shape']

    def apply_func(self, func, param=None):
        if param is None:
            return func(self.get_rawdata())
        else:
            return func(self.get_rawdata(), param)

    def start_compute(self,
                      name,
                      func,
                      param=None,
                      suffix=None,
                      interactive=True):
        self.QProxy.emit(SIGNAL("computing"))
        if interactive and param is not None:
            if interactive == 'text' and not param.text_edit():
                return
            elif not param.edit():
                return
        QApplication.setOverrideCursor(QCursor(Qt.WaitCursor))

        try:
            processing = name
            if suffix is not None:
                processing += " | " + suffix(param)

            result = Measurement()
            result.copy_param(self.measurement)
            result.set_rawdata(self.apply_func(func, param))
            result['processing'] += processing + "\n"
        except Exception, msg:
            import traceback
            traceback.print_exc()
            QMessageBox.critical(
                None, APP_NAME,
                _(u"An error occured:") + "\n%s" % unicode(msg))
            raise ComputationError, msg
        finally:
示例#7
0
文件: thothgui.py 项目: fbianco/thoth
 def connect_thoth(self):
     QObject.connect(self.thoth, SIGNAL("item_registred"),
                     self.thoth.create_window)
     #QObject.connect(self.thoth, SIGNAL("window_registred(QWidget)"), self.mdi_area.addSubWindow)
     QObject.connect(self.thoth, SIGNAL("window_registred"),
                     self.add_sub_window)
示例#8
0
 def connect_thoth(self):
     QObject.connect(self.thoth, SIGNAL("item_registred"),
                     self.thoth.create_window)
     #QObject.connect(self.thoth, SIGNAL("window_registred(QWidget)"), self.mdi_area.addSubWindow)
     QObject.connect(self.thoth, SIGNAL("window_registred"),
                     self.add_sub_window)