Where Can I Find Icons?

As a developer, you know how your application works. But your colleague does not necessarily, neither do the users. Unfortunately, the latter will need to use your work much more than you, so you should do you best to help these poor lads enjoy their time with your application. Icons are a must for anyone looking to fulfill this purpose. When properly used, they can make the difference between a good and a great app.

I won't go on about why you should use icons, I am sure you're already convinced that the previous statement is valid just by looking at your smartphone. Instead, let me show you where you can find familiar icons, and a few basic examples.

LabVIEW makes an extensive use of icons in its environment. Just look at a project window (preferably using RT/FPGA)—ou can reuse these too, just look for the following directories Windows 7-8-10 style):

- C:\Users\<username>\Documents\LabVIEW Data\Glyphs (the traditional icon library you use to customize your VI icons)

- C:\Program Files (x86)\National Instruments\LabVIEW 20xx\resource\Framework\Providers\Icons (the icons used throughout the project explorer)

- C:\ProgramData\National Instruments\NI VeriStand 20xx\System Explorer\Glyphs (if you have VeriStand (even an evaluation version), these glyphs are the ones used in your system definition files. It is quite complete)

See, no internet needed for these! They are well-known and quite descriptive, even though the majority are just small glyphs (16x16 pixels) that you cannot use in all circumstances. Trees, listboxes, tables and some booleans are good fits but the list ends there.

Fortunately, your favourite search engine will take you to some websites to help you with bigger, more modern icons. The Noun Project is a good example.

If you want to reuse some of the LabVIEW files icons (e.g. the VI or lvproj icons), you can find them... in LabVIEW.exe! This is no joke, but fear not, some utilities can extract icons out of an executable file—IconsExtract is an oldie but a goodie.

Now that you have a handful of icons stored somewhere on your computer, it's time to use them. Your boolean buttons will be happy to be enhanced from there. You might even consider making a nice menubar or toolbar using custom booleans.

Then, when I design a UI—and other stuffs, to be honest,—there is one thing I keep asking to myself: what if I need more? or less? (i.e. how do I dynamically add or remove an item?) As run-time scripting is not an option in LabVIEW and boolean arrays require all the buttons to look the same, there's only one answer I have found: a picture box (or an array of them). Encapsulated into an XControl for reuse, it serves the same purpose, with a touch of flexibility (using property and invoke nodes).