polishing for a demo
+ adopting additional requests Change-Id: If5ca29b5d247f1bc429ca101b0081b1d14f6e6f1
This commit is contained in:
@ -21,7 +21,7 @@
|
||||
#
|
||||
# *****************************************************************************
|
||||
|
||||
from PyQt4.QtGui import QWidget, QLabel
|
||||
from PyQt4.QtGui import QWidget, QLabel, QMessageBox
|
||||
from PyQt4.QtCore import pyqtSignature as qtsig, Qt, pyqtSignal
|
||||
|
||||
from secop.gui.util import loadUi
|
||||
@ -30,8 +30,12 @@ from secop.gui.util import loadUi
|
||||
class ParameterButtons(QWidget):
|
||||
setRequested = pyqtSignal(str, str, str) # module, parameter, target
|
||||
|
||||
def __init__(self, module, parameter, initval='',
|
||||
readonly=True, parent=None):
|
||||
def __init__(self,
|
||||
module,
|
||||
parameter,
|
||||
initval='',
|
||||
readonly=True,
|
||||
parent=None):
|
||||
super(ParameterButtons, self).__init__(parent)
|
||||
loadUi(self, 'parambuttons.ui')
|
||||
|
||||
@ -42,6 +46,9 @@ class ParameterButtons(QWidget):
|
||||
if readonly:
|
||||
self.setPushButton.setEnabled(False)
|
||||
self.setLineEdit.setEnabled(False)
|
||||
else:
|
||||
self.setLineEdit.returnPressed.connect(
|
||||
self.on_setPushButton_clicked)
|
||||
|
||||
def on_setPushButton_clicked(self):
|
||||
self.setRequested.emit(self._module, self._parameter,
|
||||
@ -49,12 +56,12 @@ class ParameterButtons(QWidget):
|
||||
|
||||
|
||||
class ModuleCtrl(QWidget):
|
||||
|
||||
def __init__(self, node, module, parent=None):
|
||||
super(ModuleCtrl, self).__init__(parent)
|
||||
loadUi(self, 'modulectrl.ui')
|
||||
self._node = node
|
||||
self._module = module
|
||||
self._lastclick = None
|
||||
|
||||
self._paramWidgets = {} # widget cache do avoid garbage collection
|
||||
|
||||
@ -71,7 +78,16 @@ class ModuleCtrl(QWidget):
|
||||
font.setBold(True)
|
||||
|
||||
for param in sorted(self._node.getParameters(self._module)):
|
||||
label = QLabel(param + ':')
|
||||
labelstr = param + ':'
|
||||
unit = self._node.getProperties(self._module, param).get('unit',
|
||||
'')
|
||||
descr = self._node.getProperties(self._module,
|
||||
param).get('description', '')
|
||||
|
||||
if unit:
|
||||
labelstr = "%s (%s):" % (param, unit)
|
||||
|
||||
label = QLabel(labelstr)
|
||||
label.setFont(font)
|
||||
|
||||
props = self._node.getProperties(self._module, param)
|
||||
@ -80,7 +96,11 @@ class ModuleCtrl(QWidget):
|
||||
initValues[param].value,
|
||||
props['readonly'])
|
||||
|
||||
buttons.setRequested.connect(self._node.setParameter)
|
||||
# buttons.setRequested.connect(self._node.setParameter)
|
||||
buttons.setRequested.connect(self._set_Button_pressed)
|
||||
|
||||
if descr:
|
||||
buttons.setToolTip(descr)
|
||||
|
||||
self.paramGroupBox.layout().addWidget(label, row, 0)
|
||||
self.paramGroupBox.layout().addWidget(buttons, row, 1)
|
||||
@ -89,6 +109,16 @@ class ModuleCtrl(QWidget):
|
||||
|
||||
row += 1
|
||||
|
||||
def _set_Button_pressed(self, module, parameter, target):
|
||||
sig = (module, parameter, target)
|
||||
if self._lastclick == sig:
|
||||
return
|
||||
self._lastclick = sig
|
||||
try:
|
||||
self._node.setParameter(module, parameter, target)
|
||||
except Exception as e:
|
||||
QMessageBox.warning(self.parent(), 'Operation failed', str(e))
|
||||
|
||||
def _updateValue(self, module, parameter, value):
|
||||
if module != self._module:
|
||||
return
|
||||
|
Reference in New Issue
Block a user