LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Display Multiple Front Panels in an EXE

Solved!
Go to solution

Hey all,

 

In the program that I am building, I have a GUI that the user will interact with. I've gone to great lengths to make everything look "pretty" and hide the controls so a user will only be able to interact with the ones I tell them to.

 

Other people (read: my manager) want to make it so this is set up on a dual-monitor display and I have all the controls on my side while they only get visuals.

 

Is it possible to make it so multiple front panels will pop up once I run it? Also note, I am building an EXE and not just running off my source code.

 

Thanks in advance!

_____________________________

0 Kudos
Message 1 of 9
(4,501 Views)

I am not sure of getting the idea but here is my hint:

Use a tab control. In the first tab make an authentication process. If "user" is "manager" then you display the second tab making visible only the important controls. If "user" is "admin" then you display all controls.

A VI only has one FP. Therefore you cannot display different panels for one VI. You may, as suggested above, change the visualization of the FP according to a situation. You may also use clones of one VI, in which you will not only have several FPs but also separate memory allocation. This is pretty much like having the different VIs with the same name.

This applies both for the development system as well as in runtime.

Maybe a drawing or a diagram will help to get a better grasp of your idea.

Regards

Message 2 of 9
(4,497 Views)

Another way to do it might be to put your indicators into a subVI and then have its front panel displayed when called (could be set to show when you first run the program). 

 

You can then wire all of your data into the subVI (producer/consumer architecture would be a good fit here i think) and use it as the FP for the other display.

 

-CC 

----------------------------------------------------------------------------------------------------------------------------
"If anyone needs me, I'll be in the Angry Dome!"


Message 3 of 9
(4,490 Views)

So basically, the user will see something like this. (Sorry I have to black out the majority of the text). Everything in red is a control that they can interact with. The one at the top right is a slider, I just realised that I cut off the bottom of it when circling.

pretty_gui.PNG

 

That needs to be displayed on one monitor while something like this is shown on my monitor:

BTS_gui.PNG

_____________________________

0 Kudos
Message 4 of 9
(4,488 Views)

@ChrissyC87 wrote:

Another way to do it might be to put your indicators into a subVI and then have its front panel displayed when called (could be set to show when you first run the program). 

 

You can then wire all of your data into the subVI (producer/consumer architecture would be a good fit here i think) and use it as the FP for the other display.

 

-CC 


This sounds like it would work, but as I have almost no labview experience I haven't got a clue on how to impliment this solution.

 

My apologies for my ignorance. 😕

_____________________________

0 Kudos
Message 5 of 9
(4,480 Views)

Yes it is possible to do what you want. Depending upon how your code is arranged there are a number of ways to accomplish this sort of structure. You could have the two screens be completely separate processes that are launched by a single VI (masquerading as a "splash" screen). The screen visible on your monitor could be the main application, while the other window is merely a remote data display. There are a lot of options - and they will all work with executables.

 

The thing in common with all of them is that it will require communications between different processes running in parallel. If you are not already you should be familier with such things as named queues and notifiers, functional globals and user events - which are some of the main ways of accomplishing this. You will also want to be familier with ways to programatically position windows.

 

Mike...

 

PS: I know this is rather general advice but without seeing the specifics of your code I can't be more exact.


Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

"... after all, He's not a tame lion..."

For help with grief and grieving.
Message 6 of 9
(4,478 Views)

So, as I was looking into all the solutions that have been provided, I decided to search around some of the code I inherited to see if this had been done before.

 

It turns out the last time this was done, the programmer just set the dual screen display to a top/bottom orientation instead of left/right. He then extended his front panel down and moved all the controls to the bottom. Once launched the program was moved to the "top" screen and the controls would peek through to his "bottom" screen.

 

Ugh...I can't believe I didn't think of that in the first place.

 

Edit:

I almost forgot! Thank you guys SO MUCH for helping me. It means a lot that a noob like me can find support from strangers that are giving up their free time. I can't tell you how much I appreciate it.

_____________________________

0 Kudos
Message 7 of 9
(4,462 Views)
Solution
Accepted by topic author Matub

I did a series on using multiple top level VIs.  You can find the last one in the series, and links to the others, here.  Let us know if you have further problems.

Message 8 of 9
(4,431 Views)

That's exactly what I need! Thank you so much, Dr D!

_____________________________

0 Kudos
Message 9 of 9
(4,416 Views)