New feature work: qtgui support in grc

Hey list,

I have been working on supporting PyQt widgets and the qtgui sinks in
the Gnuradio Companion. Get the code on my wip/qtgui/grc branch on
jblum.git http://gnuradio.org/cgit/jblum.git/log/?h=wip/qtgui/grc

Available widgets:

  • qtgui plotter (dft, scope, etc)
  • tabbed panel
  • slider
  • combo box
  • radio buttons
  • text entry
  • label
  1. The slider adds a new requirement of PyQwt (python Qwt bindings). Qwt
    should already be installed for the qtgui sinks themselves.

  2. The qtgui and wxgui widgets are distinctly separated. Previously, the
    “variable slider” was a wx slider form. Now, there is a WX GUI Slider
    and a QT GUI Slider. And the generate options now have a QT GUI option.
    You cannot mix and match widgets from different graphics libraries.

  3. No attempt was made to make the existence of different graphics
    toolkits transparent to the user. That would have been a huge pain on my
    part and I couldn’t try new things. If this Qt thing catches on, I am
    considering a migration script from wx->qt.

  4. The Qt widgets in grc do not have a python wrapper/forms library like
    they do in gnuradio. All the generated code uses the PyQt API directly.
    This is in-part possible because Qwt supplies its own set of useful
    wrappers around Qt widgets. Examples:
    http://qwt.sourceforge.net/sliders.png

  5. Each widget block in grc has a gui hint parameter. This parameter is
    a combination of the grid parameter and notebook parameter seen in the
    wx widget blocks. It also allowed the implementation code to be a lot
    more generic.

Whats missing?
I feel that the widgets still need a bit of polishing. Engineering
notation would be nice. I’d like to see features in the wx scope sink
brought to the qtgui scope such as trigger modes and multiple channels.
I think the qt equivalent of the numbersink would be nice too (and that
could use some of those real fancy qwt widets):

Why qtgui stuff?
The WX stuff in gnuradio is fairly polished in comparison; and when it
works, it works. But we have seen many issues with wx outside of the
linux+x86 world, not to mention opengl issues on the x86. I hope that
the qt stuff is a viable, cross platform option for live gnuradio
plotting and graphical applications.

Please try it out. Feedback is welcome!
-Josh

Hi Josh,

I had a few moments to try it out. It worked very well and I think it
will be useful.

I got a little confused when I cloned the repository because it said
there was no HEAD (or something like that) and the directory was
empty, but I could still checkout to the wip/qtgui/grc branch. I hope
I got the right thing.

You mention engineering notation for the widget. I believe for the
text entry it is quite straightforward (xml attached - I just copied
the code from the gr-qtgui example).

I will do more tests during the coming days.

Alex

On 03/02/2011 04:11 PM, Alexandru C. wrote:

Hi Josh,

I had a few moments to try it out. It worked very well and I think it
will be useful.

I got a little confused when I cloned the repository because it said
there was no HEAD (or something like that) and the directory was
empty, but I could still checkout to the wip/qtgui/grc branch. I hope
I got the right thing.

Ah, I dont have a master branch. Most people just git remote add my repo
to an existing gnuradio repo.

You mention engineering notation for the widget. I believe for the
text entry it is quite straightforward (xml attached - I just copied
the code from the gr-qtgui example).

Excellent, I will try to get this in the block as an option for
float/real numbers.

My goal is to have engineering notation for the text box in the qwt
slider. I think that involves making a custom qwt text/engine object. It
seems like something qwt should support or would not be hard to
implement. Not sure. http://pyqwt.sourceforge.net/doc5/reference.html

Thanks!
-Josh

Hey Josh

On 02/03/11 01:52, You wrote:

I have been working on supporting PyQt widgets and the qtgui sinks in
the Gnuradio Companion. Get the code on my wip/qtgui/grc branch on
jblum.git http://gnuradio.org/cgit/jblum.git/log/?h=wip/qtgui/grc

I finally got some time to take a look, but it looks like your WIP
branch has disappeared ? Did the code go into the main git repo ? I
see most of the qtgui grc blocks when starting the gunradio companion,
[from the latest repo, 19-MAR-2011] but it looks like the plotter is
missing ? Which is of course, the one I was really interestedx in
testing…

Best Regards

Iain

Hi
I am having problems adding the rep to the master using git remote need
some direction. Must have missed a step:

[email protected]:/usr/local/gnuradio$ git remote add blum
http://gnuradio.org/git/jblum.git
[email protected]:/usr/local/gnuradio$ git fetch blum
From http://gnuradio.org/git/jblum

  • [new branch] mergeme/misc/gr_flowgraph_include_iterator ->
    blum/mergeme/misc/gr_flowgraph_include_iterator

no blum dir was created

[email protected]:/usr/local/gnuradio$ git merge blum gnuradio
fatal: ‘blum’ does not point to a commit

Thanks

On 03/19/2011 12:32 PM, Iain Young, G7III wrote:

see most of the qtgui grc blocks when starting the gunradio companion,
[from the latest repo, 19-MAR-2011] but it looks like the plotter is
missing ? Which is of course, the one I was really interestedx in
testing…

Its all on the master branch of gnuradio.git

-josh

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs