.. _tau2taurus-guide:

==============================
Tau to Taurus migration guide
==============================

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

.. _migrate-ui:

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.

.. hint:
    executing tau2taurus --help gives you help on command line parameters

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.

.. raw:: html
    <HTML>
    <HEAD></HEAD>

    <BODY>
    <TABLE CELLSPACING=0 BORDER=1>
        <TBODY>
            <TR><TH>Old package</TH><TH>Old class</TH><TH>New package</TH><TH>New class</TH></TR>
            <TR>
                <TD  ALIGN=LEFT>tau</TD>
                <TD  ALIGN=LEFT>*</TD>
                <TD  ALIGN=LEFT>taurus</TD>
                <TD  ALIGN=LEFT>*</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.core</TD>
                <TD  ALIGN=LEFT>Tau*</TD>
                <TD  ALIGN=LEFT>taurus.core</TD>
                <TD  ALIGN=LEFT>Taurus*</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.core</TD>
                <TD  ALIGN=LEFT>*</TD>
                <TD  ALIGN=LEFT>taurus.core</TD>
                <TD  ALIGN=LEFT>*</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.core.resources</TD>
                <TD  ALIGN=LEFT>*</TD>
                <TD  ALIGN=LEFT>taurus.core.resource</TD>
                <TD  ALIGN=LEFT>*</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.core.simulation</TD>
                <TD  ALIGN=LEFT>*</TD>
                <TD  ALIGN=LEFT>taurus.core.simulation</TD>
                <TD  ALIGN=LEFT>*</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.core.tango</TD>
                <TD  ALIGN=LEFT>*</TD>
                <TD  ALIGN=LEFT>taurus.core.tango</TD>
                <TD  ALIGN=LEFT>*</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.core.utils</TD>
                <TD  ALIGN=LEFT>*</TD>
                <TD  ALIGN=LEFT>taurus.core.util</TD>
                <TD  ALIGN=LEFT>*</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD  ALIGN=LEFT>AbstractGraphicsFactory</TD>
                <TD  ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD  ALIGN=LEFT>TaurusBaseGraphicsFactory</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>ActionFactory</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>ActionFactory</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>BaseConfigurableClass</TD>
                <TD ALIGN=LEFT>taurus.qt.qtcore.configuration</TD>
                <TD ALIGN=LEFT>BaseConfigurableClass</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>Led</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>QLed</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>LedColor</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>LedColor</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>LedSize</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>LedSize</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>LedStatus</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>LedStatus</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>QT_ATTRIBUTE_QUALITY_PALETTE</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>QT_ATTRIBUTE_QUALITY_PALETTE</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>QT_DEVICE_STATE_PALETTE</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>QT_DEVICE_STATE_PALETTE</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>Release</TD>
                <TD ALIGN=LEFT>taurus.core</TD>
                <TD ALIGN=LEFT>Release</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauAttrForm</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.panel</TD>
                <TD ALIGN=LEFT>TaurusAttrForm</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauAttrListComboBox</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.input</TD>
                <TD ALIGN=LEFT>TaurusAttrListComboBox</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauBaseComponent</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.base</TD>
                <TD ALIGN=LEFT>TaurusBaseComponent</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauBaseConfigurableClass</TD>
                <TD ALIGN=LEFT>None</TD>
                <TD ALIGN=LEFT>None</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauBaseContainer</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.container</TD>
                <TD ALIGN=LEFT>TaurusBaseContainer</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauBaseWidget</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.base</TD>
                <TD ALIGN=LEFT>TaurusBaseWidget</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauBaseWritableWidget</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.base</TD>
                <TD ALIGN=LEFT>TaurusBaseWritableWidget</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauBoolLed</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>TaurusLed [2]_</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauButtonBox</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.button</TD>
                <TD ALIGN=LEFT>QButtonBox</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauCircularGauge</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.gauge</TD>
                <TD ALIGN=LEFT>TaurusCircularGauge</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauClassTable</TD>
                <TD ALIGN=LEFT>None</TD>
                <TD ALIGN=LEFT>None</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauCommandButton</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.button</TD>
                <TD ALIGN=LEFT>TaurusCommandButton</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauCommandsForm</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.panel</TD>
                <TD ALIGN=LEFT>TaurusCommandsForm</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauConfigLabel</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>TaurusLabel [3]_</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauConfigLineEdit</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.input</TD>
                <TD ALIGN=LEFT>TaurusConfigLineEdit</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauDevTree</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.tree</TD>
                <TD ALIGN=LEFT>TaurusDevtree</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauEllipseStateItem</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusEllipseStateItem</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauForm</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.panel</TD>
                <TD ALIGN=LEFT>TaurusForm</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauFrame</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.container</TD>
                <TD ALIGN=LEFT>TaurusFrame</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauGraphicsAttributeItem</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusGraphicsAttributeItem</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauGraphicsItem</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusGraphicsItem</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauGraphicsScene</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusGraphicsScene</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauGraphicsStateItem</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusGraphicsStateItem</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauGraphicsView</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusGraphicsView</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauGrid</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.table</TD>
                <TD ALIGN=LEFT>TaurusGrid</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauGroupBox</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.container</TD>
                <TD ALIGN=LEFT>TaurusGroupBox</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauGroupStateItem</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusGroupStateItem</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauJDrawSynopticsView</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusJDrawSynopticsView</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauLCDValue</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>TaurusLCD</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauLauncherButton</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.button</TD>
                <TD ALIGN=LEFT>TaurusLauncherButton</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauLimitSwitch</TD>
                <TD ALIGN=LEFT>taurus.qt.qgui.display</TD>
                <TD ALIGN=LEFT>TaurusLed [2]_</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauLinearGauge</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.gauge</TD>
                <TD ALIGN=LEFT>TaurusLinearGauge</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauLoggerTable</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.table</TD>
                <TD ALIGN=LEFT>TaurusLoggerTable</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauLoggerWidget</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.table</TD>
                <TD ALIGN=LEFT>TaurusLoggerWidget</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauLogo</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>QLogo</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauMainWindow</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.container</TD>
                <TD ALIGN=LEFT>TaurusMainWindow</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauPolygonStateItem</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusPolygonStateItem</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauPropTable</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.table</TD>
                <TD ALIGN=LEFT>TaurusPropTable</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauQueryComboBox</TD>
                <TD ALIGN=LEFT>None</TD>
                <TD ALIGN=LEFT>None</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauRectStateItem</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusRectStateItem</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauScrollArea</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.container</TD>
                <TD ALIGN=LEFT>TaurusScrollArea</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauStateLabel</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>TaurusLabel [4]_</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauStateLed</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>TaurusLed [2]_</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauTextAttributeItem</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusTextAttributeItem</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauTextStateItem</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.graphic</TD>
                <TD ALIGN=LEFT>TaurusTextStateItem</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauValue</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.panel</TD>
                <TD ALIGN=LEFT>TaurusValue</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauValueCheckBox</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.input</TD>
                <TD ALIGN=LEFT>TaurusValueCheckBox</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauValueComboBox</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.input</TD>
                <TD ALIGN=LEFT>TaurusValueComboBox</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauValueLabel</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.display</TD>
                <TD ALIGN=LEFT>TaurusLabel [4]_</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauValueLineEdit</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.input</TD>
                <TD ALIGN=LEFT>TaurusValueLineEdit</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauValueSpinBox</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.input</TD>
                <TD ALIGN=LEFT>TaurusValueSpinBox</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauValuesFrame</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.container</TD>
                <TD ALIGN=LEFT>TaurusValuesFrame</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauValuesTable</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.table</TD>
                <TD ALIGN=LEFT>TaurusValuesTable</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauWheelEdit</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.input</TD>
                <TD ALIGN=LEFT>TaurusWheelEdit</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauWidget</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.container</TD>
                <TD ALIGN=LEFT>TaurusWidget</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget</TD>
                <TD ALIGN=LEFT>TauWidgetFactory</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>TaurusWidgetFactory</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>AttributeAllConfigAction</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>AttributeAllConfigAction</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>AttributeDisplayAction</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>AttributeDisplayAction</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>AttributeHistoryAction</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>AttributeHistoryAction</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>AttributeImageDisplayAction</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>AttributeImageDisplayAction</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>AttributeMenu</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>AttributeMenu</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>AttributeMonitorDeviceAction</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>AttributeMonitorDeviceAction</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>AttributeRangesAction </TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>AttributeRangesAction </TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>AttributeUnitsAction</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>AttributeUnitsAction</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>ConfigurationMenu</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>ConfigurationMenu</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>SeparatorAction</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>SeparatorAction</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>TauAction</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>TauAction</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.actions</TD>
                <TD ALIGN=LEFT>TauMenu</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.util</TD>
                <TD ALIGN=LEFT>TauMenu</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.configbrowser</TD>
                <TD ALIGN=LEFT>ConfigViewer</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.panel</TD>
                <TD ALIGN=LEFT>QConfigViewer</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.dialog</TD>
                <TD ALIGN=LEFT>AttrChooser</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.panel</TD>
                <TD ALIGN=LEFT>TaurusAttributeChooser</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.dialog</TD>
                <TD ALIGN=LEFT>DataExportDlg</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.panel</TD>
                <TD ALIGN=LEFT>QDataExportDialog</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.dialog</TD>
                <TD ALIGN=LEFT>RawDataWidget</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.panel</TD>
                <TD ALIGN=LEFT>QRawDataWidget</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.edit</TD>
                <TD ALIGN=LEFT>WheelEdit</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.input</TD>
                <TD ALIGN=LEFT>QWheelEdit</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.qwt</TD>
                <TD ALIGN=LEFT>TauArrayEditor</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.plot</TD>
                <TD ALIGN=LEFT>TaurusArrayEditor</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.qwt</TD>
                <TD ALIGN=LEFT>TauPlot</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.plot</TD>
                <TD ALIGN=LEFT>TaurusPlot</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.qwt</TD>
                <TD ALIGN=LEFT>TauTrend</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.plot</TD>
                <TD ALIGN=LEFT>TaurusTrend</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.utils</TD>
                <TD ALIGN=LEFT>initTauQtLogger</TD>
                <TD ALIGN=LEFT>taurus.qt.qtcore.util</TD>
                <TD ALIGN=LEFT>initTaurusQtLogger</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.utils</TD>
                <TD ALIGN=LEFT>getQtLogger</TD>
                <TD ALIGN=LEFT>taurus.qt.qtcore.util</TD>
                <TD ALIGN=LEFT>getQtLogger</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.extra_xterm</TD>
                <TD ALIGN=LEFT>XTermWidget</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_xterm</TD>
                <TD ALIGN=LEFT>QXTermWidget</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.extra_tauservers</TD>
                <TD ALIGN=LEFT>TauServersWidget</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_tauservers</TD>
                <TD ALIGN=LEFT>TaurusServersWidget</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.extra_motor</TD>
                <TD ALIGN=LEFT>TauMotorH</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_pool</TD>
                <TD ALIGN=LEFT>TaurusMotorH</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.extra_motor</TD>
                <TD ALIGN=LEFT>TauMotorH2</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_pool</TD>
                <TD ALIGN=LEFT>TaurusMotorH2</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.extra_motor</TD>
                <TD ALIGN=LEFT>TauMotorV</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_pool</TD>
                <TD ALIGN=LEFT>TaurusMotorV</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.extra_motor</TD>
                <TD ALIGN=LEFT>TauMotorV2</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_pool</TD>
                <TD ALIGN=LEFT>TaurusMotorV2</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.extra_motor</TD>
                <TD ALIGN=LEFT>PoolMotorSlim</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_pool</TD>
                <TD ALIGN=LEFT>PoolMotorSlim</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.macroexecutor</TD>
                <TD ALIGN=LEFT>TauMacroExecutorWidget</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_macroexecutor</TD>
                <TD ALIGN=LEFT>TaurusMacroExecutorWidget</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.macroexecutor</TD>
                <TD ALIGN=LEFT>TauMacroExecutor</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_macroexecutor</TD>
                <TD ALIGN=LEFT>TaurusMacroExecutor</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.macroexecutor</TD>
                <TD ALIGN=LEFT>TauSequencer</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_macroexecutor</TD>
                <TD ALIGN=LEFT>TaurusSequencer</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.macroexecutor</TD>
                <TD ALIGN=LEFT>TauMacroConfigurationDialog</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_macroexecutor</TD>
                <TD ALIGN=LEFT>TaurusMacroConfigurationDialog</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.macroexecutor</TD>
                <TD ALIGN=LEFT>TauMacroDescriptionViewer</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_macroexecutor</TD>
                <TD ALIGN=LEFT>TaurusMacroDescriptionViewer</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.macroexecutor</TD>
                <TD ALIGN=LEFT>DoorOutput</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_macroexecutor</TD>
                <TD ALIGN=LEFT>DoorOutput</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.macroexecutor</TD>
                <TD ALIGN=LEFT>DoorDebug</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_macroexecutor</TD>
                <TD ALIGN=LEFT>DoorDebug</TD>
            </TR>
            <TR>
                <TD  ALIGN=LEFT>tau.widget.macroexecutor</TD>
                <TD ALIGN=LEFT>DoorResult</TD>
                <TD ALIGN=LEFT>taurus.qt.qtgui.extra_macroexecutor</TD>
                <TD ALIGN=LEFT>DoorResult</TD>
            </TR>
        </TBODY>
    </TABLE>
    </BODY>

    </HTML>

.. rubric : Footnotes

.. [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'/''. 