06-30-2014 12:43 PM - edited 06-30-2014 12:48 PM
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.
06-30-2014 03:03 PM
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.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
06-30-2014 03:33 PM
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)
06-30-2014 03:37 PM
@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.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
07-01-2014 12:13 AM - edited 07-01-2014 12:18 AM
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...
07-01-2014 07:45 AM
@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.
Unofficial Forum Rules and Guidelines
Get going with G! - LabVIEW Wiki.
17 Part Blog on Automotive CAN bus. - Hooovahh - LabVIEW Overlord
07-01-2014 08:07 AM
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.
07-01-2014 08:24 AM
07-01-2014 09:19 AM
Or radio buttons with the default buttons replaced by rectangular boolean buttons.
Lynn
07-01-2014 10:11 AM
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.