07-08-2024 12:35 PM
Hello,
I need to create a Main VI that contains 3 items, as per the attached image.
Top menu bar: In this bar a menu dropdown should appear with the options that the software will have.
Center: In this large rectangle, you should call the subvis with the options selected in the top menu.
Bottom bar: This will be the software's message and warning center. All the messages that the software should display to the user will be in this bar. You should communicate with the top bar and the subvis.
The three items mentioned should work at all times in the software. The top menu can be activated at any time, the center of the screen should run the subvi and allow you to control them, and the message bar should receive the messages that the subvis and top bar will emit.
What's the best way to do that beautiful and otimized?
07-08-2024 12:43 PM
Each of those parts can be its own process (by which I mean a separate loop running in its own VI). You can insert them into the main VI using subpanels.
07-08-2024 01:09 PM - edited 07-08-2024 01:14 PM
Hello Leandro,
Edit: Adding to what @Gregory said.
You will have to create custom controls to match your concept's design but you can achieve results similar to what you have shown. Please check the VI and some comments in it.
A quick, crude example for similar layout: (Run the VI to see toolbar go away as shown).
You can make string controls transparent to only show text.Overlay a logo image resized to your needs, etc .
07-08-2024 01:32 PM
I would use the LabVIEW run-time menu option (Edit > Runtime Menu...) to do the top menu. It replaces the familiar Windows menu with custom choices while the VI is running. Drop a sub-panel in the middle set to re-size with the VI. Put a horizontal splitter locked to the bottom with a text indicator or listbox (if you need scrolling) in it.
Cosmetically, it's easy. Although you won't have the fancy option like you would have with C# and WPF, LabVIEW will get the job done and look OK.
The problem will be picking a code architecture that will remain responsive, no matter what VI is running in the sub-panel. That will depend on your specific needs which you didn't provide. You will definitely need some messaging between the UI segments. Simple queues that store the current status and a stack of menu commands might work. For more complexity and the ability to extend the code, I would look into the Actor Framework.