Random Ramblings on LabVIEW Design

Community Browser
Showing results for 
Search instead for 
Did you mean: 

Re: UI Playtime Session Follow Up

Active Participant

Hello Coding Comrades,

Thanks to the attendees for giving me a couple of hours of their time and attention. I kind of enjoy doing them. Here's my cryptic agenda items.

All the examples should be in the zipped up file (LabVIEW 2015)



Not all image formats are equal

Here I demonstrated the difference between Vector and Bitmap (png) images when customising controls. I also spent some time on 6 state buttons and what each state does.

Look in ..\UIPlaytime\SplashScreen\SourceCode\Images\EmStop.odp for the graphics used. I use LibreOffice Impress to create the vector graphics. OpenOffice didn't work last time I tested it. Powerpoint probably does.


Buttons.vi shows a 4 state button with png graphics and vector graphics (EMF) for comparison.

It also describes the 4 states

MouseoverButtons.vi shows 6 state buttons

Arcade.vi goes all in with an example of why vector is better. I was bored and amusing myself.


Rectangles are Dull

Lifted from article 24 - Groovy Splash Screen


Splash Screen.vi





are all examples.


Also of interest is using the Pane Mouse Down event to move the panel around. 


Olde Worlde Controls

Color Ramps are very useful - I demonstrate what they and why you would use one.


Lifted from article 29 - Quick Quiz


Demonstrated a real world application for displaying the status of database synchronisation on a Tow Tank.


I then showed how to use picture overlays on graphs, another very useful technique.

GraphImages.vi - you will probably need to relink to the image file.


Humans are slow

Demonstrated with a real world example how you only have to acquire and display at 10 times a second while idling to give the impression of real-time performance. I also went off piste a bit and demonstrated some of the next bit...

The key issue here is that states can help you...


Doing the minimum

Demonstrated 2 tricks -



Use a fake scroll bar and only display the required portion in a table.


Explained in article 163 - A neat trick for dealing with Large Table Data



The other trick is a bit more involved when dealing with lots of servers sending lots of data to a client. Bottlenecks are plentiful (network, CPU, UI).

Essentially it relies on the Server knowing the time and width in pixels of the displayed graphs. It then sets the timebase and number of readings accordingly.


Useful to Consider

Here I talk about Functional Dialogs for data entry. This a simple dialog whose only job is to check the correctness of data entered and only allow the user to proceed if all is correct. In typical demo fashion it went a bit wrong (the software is in development and I had updated the database), fixed now.

I touched on this in my Immediacy stuff where I talk about Functional VIs- article 63 - Immediacy Presentation

and also in my article on gateways - article 117 - Gateways a Design Concept

It's a combination of both ideas..



I also introduced the idea of Debug Driven Design, which is something that me and Joerg Hampel are thinking about at the mo'. More to come in the future on this one.


Questions and Answers

I always worry I don't consider the question enough on the fly, so here's some answers with a bit of thought.


AG asked is there any way of doing an animated transition between states? - The only easy way is with the 6 state button as demonstrated. I'm guessing a Picture Ring could be used too.

NP Asked about Transparency and Splitter Bars - I've thought about this a bit more and can't even think of an example I can make to test it. My guess is that you can't. I think sub-panels may also be amusing to try this on.

With regards only updating slowing during Idling IW asked was having the updates not showing during acquisition a compromise with the user? - That really depends on the job, but idling is not acquiring. And customers cannot see an acquire in real-time, their eyes are too slow. Bit of circular answer I'm afraid.

SC:Do you average the data Steve or simply plot every nth point - That just pushed the bottleneck to the CPU, which for this design doesn't help with scaleability
EA:do you use notifiers for updating? - I don't think I've ever used notifiers for anything.
SS: So if you wanted to log all the data for offline analysis then you couldn't use this method? - I'm guessing there is not an idling state in this case, so no.

LB: How do you calculate how much time will you invest at UI Design, depending on the features, Custom Controls, FP Controls ? or do you usually leverage it from other experiences? - This is an excellent question and my answer is hard won. In my experience the rewards for giving a customer something that looks really professional is not just pride in the job (which is important for happiness), but I also find that this work pays back in how the users interact with the system. So from a time perspective I'm actually happy to spend time on this sort of thing. Obviously templates and experience help with the quoting. I can turn out UIs pretty quick. LabVIEW is actually still very good at this sort of thing.

NP:What type of color schemes do you use for UI? - I let the customer drive me, my job is to facilitate their requirements and to point out logical/efficiency problems with their designs. If left to my own devices, boring standard windows colors.

CR: How do you communicate the UI design to the customer throughout the project? - Communication is key and we're pretty agile in this part of our process, so lots of prototypes and getting the customer to use the software as early as possible. Our design method is focused on being able to respond rapidly and flexibly to changes too.








Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop

Random Ramblings Index
My Profile


Thanks Steve. Those UIs were a breath of fresh air - loved the floating arcade game!


The vector graphic button stuff was of particular interest to me as in my last job I spent many hours re-creating .png image files for buttons every time the customer wanted the layout changing. I used to use the 'import to picture to clipboard' to keep the transparency but obviously couldn't resize without them going blurry.


For those who want to try creating vector graphics for LabVIEW in PowerPoint - I had a go and this is what I found.

I created a funky textbox which has a transparent background. If I paste the object into LabVIEW directly… No transparency and not vector. But if you save the PowerPoint object as a picture in Windows Metafile format (.wmf) then select  Edit>Import Picture to Clipboard  in LabVIEW - bingo, it is vector and transparent!


That will save me lots of time - thanks again!

Knight of NI

I especially liked the Radia Perlman poem.  I'm sure you are aware of the "original" poem, "Trees", by Joyce Kilmer, published (I think) just over a century ago:



I think that I shall never see
A poem lovely as a tree.
A tree whose hungry mouth is prest
Against the earth’s sweet flowing breast;
A tree that looks at God all day,
And lifts her leafy arms to pray;
A tree that may in Summer wear
A nest of robins in her hair;
Upon whose bosom snow has lain;
Who intimately lives with rain.
Poems are made by fools like me,
But only God can make a tree.
Keep up the inspiring work, Steve, and stay safe in these "interesting" times...
Bob Schor
Active Participant

@Leah - Excellent work and thanks for testing on Powerpoint

@Bob - The mediums of poetry and dance are pretty much wasted on this old punk, but I love the idea of more poetry, not less. I aspire to learn and one day appreciate it like it deserves. PS I do actually know that one. Sometimes I can write elegantly and I really appreciate it when it happens (not today sadly)


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop

Random Ramblings Index
My Profile

Proven Zealot

Hey Steve, I watched your video, thanks for providing the LabVIEW community with so many resources on creating good UIs.


There was a point late in the presentation where you were navigating a VI block diagram, and you were trying to find a particular frame of a large case structure, and you muttered something along the lines of, "maybe I'll get a search for this someday".


That day is now! In LabVIEW 2020 and later you can right-click a case structure and select 'Show Case'. This will give you a Quick Drop-like UI where you can type a partial or complete case name to filter the list and quickly navigate to the desired case, without needing to scroll up and down trying to find it in the drop-down menu.


Even though the feature ships with LabVIEW 2020 and later, you can also download this same plugin here if you are in LabVIEW 2019.

DNatt, NI
Active Participant

@Darren that's just some great work. You know we appreciated it!


Opportunity to learn from experienced developers / entrepeneurs (Fab,Joerg and Brian amongst them):
DSH Pragmatic Software Development Workshop

Random Ramblings Index
My Profile

Active Participant

Great stuff, thanks.