Comments (5)
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):
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.
@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.
Dear @cpascual and @daesters
Thanks a lot, this solves the problem!
Have a great day!
Yves Acremann
from taurus.
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.
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)
- Taurus CLI not installed by conda on Windows HOT 1
- Taurus GUI blocks on DS errors HOT 4
- The Validator we set seems not to be taken into account for TaurusValueLineEdit HOT 6
- The "new gui wizard" uses the deprecated "MONITOR" key
- TODO: Remove TaurusGui's "Manual" panel when Qt4 is no longer supported
- Taurus GUI - no new panel feature HOT 3
- Changing qwt5.TaurusPlot curves legend titles? HOT 13
- taurus designer not loading taurus extensions HOT 2
- problems with unmatching timezones
- Spectrum (or Array) Subset in SetModel HOT 3
- __get_disk_counters should catch PermissionError HOT 2
- Add more info to error reports in `TaurusMessagePanel`
- Publish taurus to conda-forge HOT 13
- Taurus GUI very unresponsive HOT 23
- QLoggingWidget: can it show tango device server logs? HOT 4
- Unknown unit "%" (will be treated as unitless) - List of recognized units? HOT 2
- Tango synoptic viewer laggy HOT 2
- Best widget for displaying device verbose messages HOT 8
- Thread deadlock in TaurusPollingTimer HOT 1
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
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.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from taurus.