LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

What are some of your favorite practices in GUI design?

I saw a conversation a few weeks ago about LVOOP vs Clusters for passing around data that I found fascinating - and quite informative.  I thought I'd try to open up a discussion about GUI design and see what I could learn.

 

Edit: to give an example, I have found that I have taken an irrational dislike to tab controls. Instead, I use clusters with a few supporting VIs. Switching the "tab" will just make the proper cluster visible, and the others invisible.  Set each cluster as a type def in the project and just edit that for when I need to change something.  It lets me already have all of my control data bundled, and as a bonus sorts them automatically in Event structures.

0 Kudos
Message 1 of 31
(3,272 Views)

Okay I have two but they both relate to menus.

 

I spend a good amount of time right clicking on all UI elements, and making sure run-time menus are disabled for ones that I don't have any custom menus for, and I add extra right click menus for shortcuts to things the user can normally do but with more button clicks.

 

To that same idea I like well made toolbar menus.  File, Configuration, Window, and Help should be in all programs that have a toolbar.  And I spend a good amount of time with the "Window" menu item so that it is dynamic showing a list of windows that are currently opened to view, and allowing sub panel selection, if a particular window has the ability to show a VI in a subpanel.

0 Kudos
Message 2 of 31
(3,219 Views)

I just started using runtime menus fairly heavily. They drastically improved my layout. I haven't thought to disable the defaults though. I suppose this is something I should do.

 

With respect to toolbar menus, I have a hard time trying to decide how much to actually put there. It is very useful, but at the same time it seems like interfaces in general are trending away from that design.  (Most of office suite, web browsers, etc)

0 Kudos
Message 3 of 31
(3,207 Views)

@BowenM wrote:

I just started using runtime menus fairly heavily. They drastically improved my layout. I haven't thought to disable the defaults though. I suppose this is something I should do.


Generally I have things like status indicators that no user should need to right click and do anything with.  Or boolean buttons.  Why would a user need to right click a button unless I decide to have some custom menu for it.  Luckily NI made it pretty easy to disable a run-time menu.  Right Click >> Advanced >> Run-Time Menu >> Disable.  No need to mess with other config window.

0 Kudos
Message 4 of 31
(3,203 Views)

There is absolutely nothing irrational about disliking tab controls. I, for example, consider them to be a Great Evil on the order of Vogon poetry and "Very Brady" Christmas specials.
In fact, both Microsoft and Apple have deprecated the use of tabs in their software stating that in the end they weren't as good an idea as they thought they were.
The problem in a LV environment it that while they may help organize front panels, they offer no such benefit to the block diagrams.
Subpanels on the other hand both organize you front panels AND modularize the block diagrams.

So to sum up:

Tab Controls -- Bad
Subpanels -- Good

Mike...


Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

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

For help with grief and grieving.
Message 5 of 31
(3,164 Views)

@mikeporter wrote:


So to sum up:

Tab Controls -- Bad
Subpanels -- Good


I wouldn't go that far.  I generally need to be more organized in my block diagram when using tabs, but that doesn't mean they are bad.  Have a state in a state machine for updating each tab.  Then when updating the UI look at which tab the user is on, and only update those UI elements.

 

There are other limitations to tabs that frustrate me, like .Net controls sometimes do weird things in tabs.  And some times I would have too many tabs and it starts to add rows which get all kinds of confusing.  In these cases I would hide the tabs and replicate the functionality with a single column listbox which changes the tab value.  But at that point it would be just as easy to insert a different VI into a subpanel.

0 Kudos
Message 6 of 31
(3,123 Views)

I've got a system where I've got a tab control made as vertically short as possible.  Under the control I've got a giant subpanel that I load different things into based on what tab the user clicks.  It allows me to have the benefit and flexability of subpanels while presenting a UI that the user already understands.  I agree that the native LabVIEW tab is awful.

0 Kudos
Message 7 of 31
(3,112 Views)
Good solution. I have also seen folks do the same sort of thing but with a tree control as the selection medium.

Mike...

Certified Professional Instructor
Certified LabVIEW Architect
LabVIEW Champion

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

For help with grief and grieving.
0 Kudos
Message 8 of 31
(3,106 Views)

Or radio buttons with the default buttons replaced by rectangular boolean buttons.

 

Lynn

0 Kudos
Message 9 of 31
(3,094 Views)

That's a neat idea.  Can you programatically adjust the number of buttons in a radio control?  I have to disable tabs rather than add and remove them due to restrictions of the tab control.

0 Kudos
Message 10 of 31
(3,083 Views)