taurus taurus

Table Of Contents

Previous topic

Developer’s Guide

Next topic

Taurus development guidelines

This Page

Tau to Taurus migration guide

This chapter explains how to migrate from an application written using tau to taurus.

Migrate project .ui files

The first step in the migration is to translate the .ui files created with the Qt designer using the tau widgets. The .ui file generated by the designer is basically just an XML file describing the GUI you designed. Taurus comes with a tool called tau2taurus which can be located in the scripts directory.

This tool receives as parameters an output .ui file and an input .ui file. When executed, it replaces all occurences of tau with the proper taurus. It uses the tau2taurus.csv file to identify which new taurus class replaces the old tau class. Let’s say your project contains an .ui file called mainwindow.ui that was created using the designer with the tau widgets and you want to migrate it to taurus. On the command line just execute:

tau2taurus -o mainwindow2.ui mainwindow.ui

Caution

the output file CAN be the same as the input file. However we advise to use different files to be able to go back to the old .ui file if necessary

You should now reopen the generated file with taurusdesigner to fix any problems (some widget properties may have ceased to exist).

Generate the python code from the .ui files

Now that you have successfully converted all .ui files it’s time to regenerate the python code from them. Taurus comes with a tool called taurusuic4 [1] that converts the .ui file into python code.

Hint

executing tau2taurus --help gives you help on command line parameters

Continuing with the previous example, just type in the command line:

taurusuic4 -x -o ui_mainwindow.py mainwindow2.ui

Important

taurusuic4 uses pyuic4 behind the scenes. In order to make it work properly it has to do some nasty code changes depending on the pyuic4 version you have installed. Therefore, for taurusuic4 to work as expected, you MUST give the .ui input file as the last parameter in the command line

Hint

giving -x option makes the python code executable from the command line. This makes it possible to execute the generated python file directly from the command line:

python ui_mainwindow.py

Migrate your code

The third step and final step in the migration is to change your python code to replace all references to tau with taurus. Unfortunately there is no tool to do this so this step must be done manually by you. The following table describes the replacement classes.

Old packageOld classNew packageNew class
tau * taurus *
tau.core Tau* taurus.core Taurus*
tau.core * taurus.core *
tau.core.resources * taurus.core.resource *
tau.core.simulation * taurus.core.simulation *
tau.core.tango * taurus.core.tango *
tau.core.utils * taurus.core.util *
tau.widget AbstractGraphicsFactory taurus.qt.qtgui.graphic TaurusBaseGraphicsFactory
tau.widget ActionFactory taurus.qt.qtgui.util ActionFactory
tau.widget BaseConfigurableClass taurus.qt.qtcore.configuration BaseConfigurableClass
tau.widget Led taurus.qt.qtgui.display QLed
tau.widget LedColor taurus.qt.qtgui.display LedColor
tau.widget LedSize taurus.qt.qtgui.display LedSize
tau.widget LedStatus taurus.qt.qtgui.display LedStatus
tau.widget QT_ATTRIBUTE_QUALITY_PALETTE taurus.qt.qtgui.util QT_ATTRIBUTE_QUALITY_PALETTE
tau.widget QT_DEVICE_STATE_PALETTE taurus.qt.qtgui.util QT_DEVICE_STATE_PALETTE
tau.widget Release taurus.core Release
tau.widget TauAttrForm taurus.qt.qtgui.panel TaurusAttrForm
tau.widget TauAttrListComboBox taurus.qt.qtgui.input TaurusAttrListComboBox
tau.widget TauBaseComponent taurus.qt.qtgui.base TaurusBaseComponent
tau.widget TauBaseConfigurableClass None None
tau.widget TauBaseContainer taurus.qt.qtgui.container TaurusBaseContainer
tau.widget TauBaseWidget taurus.qt.qtgui.base TaurusBaseWidget
tau.widget TauBaseWritableWidget taurus.qt.qtgui.base TaurusBaseWritableWidget
tau.widget TauBoolLed taurus.qt.qtgui.display TaurusLed [2]_
tau.widget TauButtonBox taurus.qt.qtgui.button QButtonBox
tau.widget TauCircularGauge taurus.qt.qtgui.gauge TaurusCircularGauge
tau.widget TauClassTable None None
tau.widget TauCommandButton taurus.qt.qtgui.button TaurusCommandButton
tau.widget TauCommandsForm taurus.qt.qtgui.panel TaurusCommandsForm
tau.widget TauConfigLabel taurus.qt.qtgui.display TaurusLabel [3]_
tau.widget TauConfigLineEdit taurus.qt.qtgui.input TaurusConfigLineEdit
tau.widget TauDevTree taurus.qt.qtgui.tree TaurusDevtree
tau.widget TauEllipseStateItem taurus.qt.qtgui.graphic TaurusEllipseStateItem
tau.widget TauForm taurus.qt.qtgui.panel TaurusForm
tau.widget TauFrame taurus.qt.qtgui.container TaurusFrame
tau.widget TauGraphicsAttributeItem taurus.qt.qtgui.graphic TaurusGraphicsAttributeItem
tau.widget TauGraphicsItem taurus.qt.qtgui.graphic TaurusGraphicsItem
tau.widget TauGraphicsScene taurus.qt.qtgui.graphic TaurusGraphicsScene
tau.widget TauGraphicsStateItem taurus.qt.qtgui.graphic TaurusGraphicsStateItem
tau.widget TauGraphicsView taurus.qt.qtgui.graphic TaurusGraphicsView
tau.widget TauGrid taurus.qt.qtgui.table TaurusGrid
tau.widget TauGroupBox taurus.qt.qtgui.container TaurusGroupBox
tau.widget TauGroupStateItem taurus.qt.qtgui.graphic TaurusGroupStateItem
tau.widget TauJDrawSynopticsView taurus.qt.qtgui.graphic TaurusJDrawSynopticsView
tau.widget TauLCDValue taurus.qt.qtgui.display TaurusLCD
tau.widget TauLauncherButton taurus.qt.qtgui.button TaurusLauncherButton
tau.widget TauLimitSwitch taurus.qt.qgui.display TaurusLed [2]_
tau.widget TauLinearGauge taurus.qt.qtgui.gauge TaurusLinearGauge
tau.widget TauLoggerTable taurus.qt.qtgui.table TaurusLoggerTable
tau.widget TauLoggerWidget taurus.qt.qtgui.table TaurusLoggerWidget
tau.widget TauLogo taurus.qt.qtgui.display QLogo
tau.widget TauMainWindow taurus.qt.qtgui.container TaurusMainWindow
tau.widget TauPolygonStateItem taurus.qt.qtgui.graphic TaurusPolygonStateItem
tau.widget TauPropTable taurus.qt.qtgui.table TaurusPropTable
tau.widget TauQueryComboBox None None
tau.widget TauRectStateItem taurus.qt.qtgui.graphic TaurusRectStateItem
tau.widget TauScrollArea taurus.qt.qtgui.container TaurusScrollArea
tau.widget TauStateLabel taurus.qt.qtgui.display TaurusLabel [4]_
tau.widget TauStateLed taurus.qt.qtgui.display TaurusLed [2]_
tau.widget TauTextAttributeItem taurus.qt.qtgui.graphic TaurusTextAttributeItem
tau.widget TauTextStateItem taurus.qt.qtgui.graphic TaurusTextStateItem
tau.widget TauValue taurus.qt.qtgui.panel TaurusValue
tau.widget TauValueCheckBox taurus.qt.qtgui.input TaurusValueCheckBox
tau.widget TauValueComboBox taurus.qt.qtgui.input TaurusValueComboBox
tau.widget TauValueLabel taurus.qt.qtgui.display TaurusLabel [4]_
tau.widget TauValueLineEdit taurus.qt.qtgui.input TaurusValueLineEdit
tau.widget TauValueSpinBox taurus.qt.qtgui.input TaurusValueSpinBox
tau.widget TauValuesFrame taurus.qt.qtgui.container TaurusValuesFrame
tau.widget TauValuesTable taurus.qt.qtgui.table TaurusValuesTable
tau.widget TauWheelEdit taurus.qt.qtgui.input TaurusWheelEdit
tau.widget TauWidget taurus.qt.qtgui.container TaurusWidget
tau.widget TauWidgetFactory taurus.qt.qtgui.util TaurusWidgetFactory
tau.widget.actions AttributeAllConfigAction taurus.qt.qtgui.util AttributeAllConfigAction
tau.widget.actions AttributeDisplayAction taurus.qt.qtgui.util AttributeDisplayAction
tau.widget.actions AttributeHistoryAction taurus.qt.qtgui.util AttributeHistoryAction
tau.widget.actions AttributeImageDisplayAction taurus.qt.qtgui.util AttributeImageDisplayAction
tau.widget.actions AttributeMenu taurus.qt.qtgui.util AttributeMenu
tau.widget.actions AttributeMonitorDeviceAction taurus.qt.qtgui.util AttributeMonitorDeviceAction
tau.widget.actions AttributeRangesAction taurus.qt.qtgui.util AttributeRangesAction
tau.widget.actions AttributeUnitsAction taurus.qt.qtgui.util AttributeUnitsAction
tau.widget.actions ConfigurationMenu taurus.qt.qtgui.util ConfigurationMenu
tau.widget.actions SeparatorAction taurus.qt.qtgui.util SeparatorAction
tau.widget.actions TauAction taurus.qt.qtgui.util TauAction
tau.widget.actions TauMenu taurus.qt.qtgui.util TauMenu
tau.widget.configbrowser ConfigViewer taurus.qt.qtgui.panel QConfigViewer
tau.widget.dialog AttrChooser taurus.qt.qtgui.panel TaurusAttributeChooser
tau.widget.dialog DataExportDlg taurus.qt.qtgui.panel QDataExportDialog
tau.widget.dialog RawDataWidget taurus.qt.qtgui.panel QRawDataWidget
tau.widget.edit WheelEdit taurus.qt.qtgui.input QWheelEdit
tau.widget.qwt TauArrayEditor taurus.qt.qtgui.plot TaurusArrayEditor
tau.widget.qwt TauPlot taurus.qt.qtgui.plot TaurusPlot
tau.widget.qwt TauTrend taurus.qt.qtgui.plot TaurusTrend
tau.widget.utils initTauQtLogger taurus.qt.qtcore.util initTaurusQtLogger
tau.widget.utils getQtLogger taurus.qt.qtcore.util getQtLogger
tau.widget.extra_xterm XTermWidget taurus.qt.qtgui.extra_xterm QXTermWidget
tau.widget.extra_tauservers TauServersWidget taurus.qt.qtgui.extra_tauservers TaurusServersWidget
tau.widget.extra_motor TauMotorH taurus.qt.qtgui.extra_pool TaurusMotorH
tau.widget.extra_motor TauMotorH2 taurus.qt.qtgui.extra_pool TaurusMotorH2
tau.widget.extra_motor TauMotorV taurus.qt.qtgui.extra_pool TaurusMotorV
tau.widget.extra_motor TauMotorV2 taurus.qt.qtgui.extra_pool TaurusMotorV2
tau.widget.extra_motor PoolMotorSlim taurus.qt.qtgui.extra_pool PoolMotorSlim
tau.widget.macroexecutor TauMacroExecutorWidget taurus.qt.qtgui.extra_macroexecutor TaurusMacroExecutorWidget
tau.widget.macroexecutor TauMacroExecutor taurus.qt.qtgui.extra_macroexecutor TaurusMacroExecutor
tau.widget.macroexecutor TauSequencer taurus.qt.qtgui.extra_macroexecutor TaurusSequencer
tau.widget.macroexecutor TauMacroConfigurationDialog taurus.qt.qtgui.extra_macroexecutor TaurusMacroConfigurationDialog
tau.widget.macroexecutor TauMacroDescriptionViewer taurus.qt.qtgui.extra_macroexecutor TaurusMacroDescriptionViewer
tau.widget.macroexecutor DoorOutput taurus.qt.qtgui.extra_macroexecutor DoorOutput
tau.widget.macroexecutor DoorDebug taurus.qt.qtgui.extra_macroexecutor DoorDebug
tau.widget.macroexecutor DoorResult taurus.qt.qtgui.extra_macroexecutor DoorResult
[1]This tool must be used instead of the standard pyuic4 because of some issues regarding the code generation for taurus widgets that don’t inherit directly from a standard Qt widget but from another taurus widget.
[2]TaurusLed no longer has the property ledSize. Use the widget size to set the led size. The property boolIndex has been replaced by modelIndex
[3]When TaurusLabel is used to display an attribute configuration, the model name should remain the same (ex: ‘a/b/c/attr?configuration=label’) and the property “bgRole” should be set to the string “None” or “” to avoid having a background color related to the attribute quality.
[4]TaurusLabel no longer has the property showState/showQuality features. To decide the origin of the background color, set the property bgRole to ‘quality’ (default), ‘state’ or ‘None’/’‘.