Coder Social home page Coder Social logo

Comments (5)

cpascual avatar cpascual commented on July 26, 2024

Hi @yacremann ,

By default Taurus does not use the Tango display format (more precisely, it uses it partially, only to try to infer the "precision" of an attribute), but you can configure it to show it using the taurus.core.tango.util.TangoFormatter.

To set it directly from the GUI, if you use a TaurusForm, you can use the context menu (either for a single value or for the whole form):

image

If you want to do it programmatically for a TaurusLabel, see this snippet:

from taurus.qt.qtgui.application import TaurusApplication
from taurus.qt.qtgui.display import TaurusLabel
from taurus.core.tango.util import tangoFormatter

import sys
app = TaurusApplication()

w = TaurusLabel()
w.setModel("sys/tg_test/1/double_scalar")

# use the format string provided by the tango config
w.setFormat(tangoFormatter)

w.show()
sys.exit(app.exec_())

For more information about Formatter API, see this

For a detailed explanation on why we do not use the TangoFormatter by default, see this conversation:
#1148 (comment)

I hope this helps!

from taurus.

daesters avatar daesters commented on July 26, 2024

@cpascual This is great.

Reading the documentation, I've realized one can set the default formatter for the whole GUI, with
TaurusBaseComponent.FORMAT = tangoFormatter

Using Taurus Designer to great the gui ''MainGui.ui''., the following python script does the rest:

import os.path
import sys

from PyQt5 import QtWidgets
from taurus.external.qt import Qt
from taurus.qt.qtgui.util.ui import UILoadable
from taurus.qt.qtgui.base import TaurusBaseComponent
from taurus.core.tango.util import tangoFormatter

@UILoadable(with_ui="_ui")
class DruckGuiImpl(Qt.QMainWindow):

    def __init__(self, parent=None):
        Qt.QMainWindow.__init__(self, parent)
        self.loadUi(filename="MainGui.ui", path=os.path.dirname(__file__))
 
if __name__ == "__main__":
    # Set default formatter
    TaurusBaseComponent.FORMAT = tangoFormatter
    app = QtWidgets.QApplication(sys.argv)
    dialog = DruckGuiImpl()
    dialog.show()
    sys.exit(app.exec_())`

from taurus.

yacremann avatar yacremann commented on July 26, 2024

Dear @cpascual and @daesters
Thanks a lot, this solves the problem!

Have a great day!
Yves Acremann

from taurus.

cpascual avatar cpascual commented on July 26, 2024

Hi @daesters and @yacremann

Yes, setting TaurusBaseComponent.FORMAT is possible, but it is discouraged. I understand that that one-liner is tempting, but instead I recommend to be as selective as possible when setting the formatter (i.e, set it at instance level better than at class level, and at specific class level better than at base-class level...)

Here is some more about this (sorry for not having linked to it from the beginning):
https://github.com/taurus-org/taurus/wiki/Best-Practices-for-Taurus-4#formatter-api

from taurus.

daesters avatar daesters commented on July 26, 2024

Dear @cpascual
Thanks for your comment. We'll keep that in mind. And thanks for the link, that is really helpfull

Cheers

from taurus.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.