Jump to content

Discussion : Moving away from pixel-based UI design

Recommended Posts

I've started this thread as a discussion point, to foster ideas and maybe come up with something unique, because I completely agree with JKI that user interface design in LabVIEW is dated, restrictive and well overdue an overhaul.

Since the conception of NXG (2013) I've been campaigning for user interface design that avoids using absolute pixels, because pixels are irrelevant in this era. A user viewing a LabVIEW front panel on a 1080p 32" monitor, a 1080p 14" laptop or a 1080p 8" device will currently all be shown the exact same user interface, because your LabVIEW window will be 1920x1080 pixels in all three cases. However the actual physical size of each control and indicator varies enormously because for each display the actual pixel real world size decreases as the screen gets smaller. The term PPI is used to represent pixel density, and in this example it varies from 69ppi to 538ppi.

This isn't the best example, but we've all seen how websites scale/alter their presentation as the window physical size changes. For example, shutterfly.com on my 1440p mobile in landscape, versus on my 1080p laptop:


Despite having more pixels on my phone, the displayed website has less content because the renderer understands that the pixels are much smaller, so to ease my eyes I need enlarged buttons to keep things readable, and also touch friendly - which is another desirable feature. Everything is scaled appropriately based on an understanding of the real world dimensions. Examples of real-world digital pixels are points, or picas, depending on your base units (mm or inches). And this is what I really want. The ability to design a UI in relation to real-world points, with rules that define how the UI will restructure itself for different panel widths.

During the NXG development feedback phases I wrote pages on potential approaches, include "controls that are special VIs", where a component of the UI is something similar to an XControl - an active piece of code embedded in a front panel chunk that acts like a LabVIEW control. Without the complexity of XControls, it would be more of a Smart Control, designed with a view to making scalable elements of a UI easy to develop, with programmed behaviours when user interactions occur, and based on points, not pixels. They could work like classes, providing the ability to create a group of similar controls that override inherited behaviours from parent smart controls. I can image creating a colour palette within the abstract parent, and child smart controls for each component of the UI. Change the colours in the parent class and all the controls redraw with the new theme. They would each be an element of a UI, such as a menu banner or hamburger menu system, or simply a button. The interactions to them would likely be through messages, or user events, rather than terminals etc.

I've not seen anything yet in LabVIEW that can provide this real-world sizing behaviour, and I don't expect it would be simple to develop (if possible at all), but I wonder if others have similar interests, or have achieved anything along these lines themselves?


Edited by Thoric
  • Like 1
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


  • Create New...

Important Information

By using this site, you agree to our Terms of Use.