UI Interest Group Discussions

cancel
Showing results for 
Search instead for 
Did you mean: 

is there a way to hide/display a graph palette using a mouse-over or some other way?

I am building a vi that records data from several channels and shows the waveforms on individual graphs. the screen will look too busy with graph palettes for each one. Is there a way to turn them on/off by a mouse-over or something? attached is a screen print of the front page (a work in progress) with one graph palette showing. I'd like to make them an option, if possible..

0 Kudos
Message 1 of 8
(6,821 Views)

Instead of plotting several channels data on individual graphs, you can plot these channels data on a single graph itself with color differentiation.

0 Kudos
Message 2 of 8
(3,331 Views)

Thats pretty easy.. put the property node of the graph in event structure and selecting an event vith the "mouse enter" and a other event with "mouse leave" events. It works good when you have only a few graphs.

I've just see your front panel, and I don't know if your realy need to have all graphs in one block.. (there's a lot..). As I'm tryin to explain before, that's would mean that you must have many property nodes (one for each property visible/invisible, and for each graph)..!

Maybe can you make some graph groups, or using pop-up graphs, or using an X-control to minimise your code (wires on BD)

¨

Best regards

Fred

0 Kudos
Message 3 of 8
(3,331 Views)

Instead of putting property nodes for all those graphs into the event structure directly, I'd suggest to decouple the events from the property-related work. Use some communications like queues or similar to send some commands to hide and show the respective graph's palette.

Background: property node work runs in UI thread only and requires a redraw of parts of the screen, which can cost some CPU effort. It is considered bad style to have costly task being performed directly in a repeated event structure, as it could slow down reaction time. AND, having a parallel running loop that consumes the sent commands, this one can keep records of what was shown and should be hided now and what was hidden and must be shown. So one can reduce work.

Search for 'producer/consumer' in the LabVIEW examples!

Greetings from Germany!

--

Uwe

0 Kudos
Message 4 of 8
(3,331 Views)

thank you all for your help with this. I agree that 60 channels looks pretty busy but that is just so I can see which channels are firing.

Here's a little background - I am recording small signals from dissociated neuronal cultures or small sections of (mouse) brain slice using an MEA and many of them are so close together that combining them to one graph may hide the signals of interest. Right now, my front panel looks like four tabbed folders on a page with the first being the simple collection of analog signal from all channels. The second tab of this has only a few graphs (selectable by the user to see close-ups of the few channels of interest) so that is probably where I will use the property nodes (although I like the idea of pop-up graphs and will look into this also).  The third tab contains images from a microscope camera to see the morphology of the slice (or neurons) over the glass MEA under a fluorescent microscope, and the 4th tab is an area for sample/culture information so I can keep my sample info with its respective data.

It may be too much to ask for one program but so far it appears to be working . I am currently working on "pretty-ing" it up and then am hoping to compile to make it an executable... My thesis advisor wants it idiot-proof. Too bad I am an idiot! This is my first time using LabView and have no programming experience at all so a lot of this seems foreign to me. I really do appreciate the various user groups and the support from other LabView users. Thanks again for all your advice!

0 Kudos
Message 5 of 8
(3,331 Views)

Some other ideas which may help

  1. Create buttons which signal your application to do what the graph palette does.  String these along the bottom of the group of plots.  Use graph methods and properties (VI server) triggered by clicking the buttons (use event structure) to do what the graph palette does.  Select the graph of interest by clicking on it. You can highlight a graph more obviously by putting a color box behind it (also changed by clicking on the graph).
  2. Group your graphs in threes or fives to reduce the number.
  3. Buffer all your data internally, but only show a few graphs at once.  Have a selector to pick which ones.

This kind of thing is hard to do well, and there is no one right answer.  You will need to learn how to use the event structure effectively.  Try a few test cases before implementing it in your main program.  Good luck!  If you have ideas of what you would like to do, but do not know how to do it, let us know.

0 Kudos
Message 6 of 8
(3,331 Views)

This seems like a question that should be asked in the forum rather than posted in a community group.

http://forums.ni.com/t5/LabVIEW/bd-p/170

Troy - CLD "If a hammer is the only tool you have, everything starts to look like a nail." ~ Maslow/Kaplan - Law of the instrument
0 Kudos
Message 7 of 8
(3,331 Views)

Probably an XControl should help you.I've written an example in the attached zip file.

Open the XChart.lvproj and Test.vi located in VIs folder.

Test.vi has 6 charts, but you can put as many charts as you want simply by coping one of them.

The code for turning graph palettes on or off is embedded in the XControl (see XChart folder).

I hope it can help you.

Paolo.

0 Kudos
Message 8 of 8
(3,331 Views)