|
From: cfalcon <cf...@ce...> - 2015-10-29 17:00:58
|
setModel of taurus.qt.qtgui.table.TaurusPropTable does not work.
TaurusPropTable uses the inherit setModel method of TaurusBaseWidget
class that does not cover the funcionality of this widget.
Implement a setModel method acording the specifications provided
by S.Rubio.
---
.../qt/qtgui/table/taurusdevicepropertytable.py | 22 +++++++++++++++++-----
1 file changed, 17 insertions(+), 5 deletions(-)
diff --git a/lib/taurus/qt/qtgui/table/taurusdevicepropertytable.py b/lib/taurus/qt/qtgui/table/taurusdevicepropertytable.py
index 9901ec3..b01ded5 100644
--- a/lib/taurus/qt/qtgui/table/taurusdevicepropertytable.py
+++ b/lib/taurus/qt/qtgui/table/taurusdevicepropertytable.py
@@ -33,12 +33,14 @@ from taurus.external.qt import Qt, QtCore, QtGui
from taurus.qt.qtgui.base import TaurusBaseWidget
import taurus.core
import PyTango
+from taurus.core.taurusdevice import TaurusDevice
class TaurusPropTable(QtGui.QTableWidget, TaurusBaseWidget):
'''
This widget will show a list of properties of device and the list of values.
@todo add a frame for Add, Delete and Refresh buttons!
'''
+ # TODO This widget is Tango-centric
__pyqtSignals__ = ("modelChanged(const QString &)",)
def __init__(self, parent=None, designMode = False):
@@ -59,6 +61,16 @@ class TaurusPropTable(QtGui.QTableWidget, TaurusBaseWidget):
#-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
# TaurusBaseWidget over writing methods
#-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
+ def setModel(self, model):
+ name_validator = TaurusDevice.getNameValidator()
+ self.setModelCheck(model)
+ try:
+ _, normal_name, _ = name_validator.getNames(model)
+ except ValueError:
+ self.debug('Wrong model!! %s' %(model))
+ normal_name = ''
+ self.setTable(normal_name)
+
def sizeHint(self):
return QtGui.QTableWidget.sizeHint(self)
@@ -82,7 +94,7 @@ class TaurusPropTable(QtGui.QTableWidget, TaurusBaseWidget):
#-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-
model = QtCore.pyqtProperty("QString", TaurusBaseWidget.getModel,
- TaurusBaseWidget.setModel,
+ setModel,
TaurusBaseWidget.resetModel)
useParentModel = QtCore.pyqtProperty("bool",
@@ -375,9 +387,9 @@ if __name__ == '__main__':
import sys,os
app = QtGui.QApplication([])
widget = TaurusPropTable()
- args = sys.argv[1:]
- if not args: args = ['tango/admin/%s'%(os.environ['TANGO_HOST'].split(':')[0])]
- widget.setTable(sys.args)
+ args = str(sys.argv[1:][0])
+ if not args:
+ args = 'sys/tg_test/1'
+ widget.setModel(args)
widget.show()
app.exec_()
-
--
2.4.0
|