From 04:00 PM CDT – 08:00 PM CDT (09:00 PM UTC – 01:00 AM UTC) Tuesday, April 16, ni.com will undergo system upgrades that may result in temporary service interruption.

We appreciate your patience as we improve our online experience.

LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

User Generated Tab Controls (tabbed pages)

Solved!
Go to solution

@drjdpowell wrote:

@noblepete wrote:

Hi Everyone, 

 

I'm a software engineer who has no experience in LabVIEW. I just started a new job where they would like me to help fix a LabVIEW application that was developed by a third party. This application replaces an existing application where the user could create multiple tabbed windows where they can view sensor readings of their choosing. They can do the same with plots of these readings. Our tests can range in complexity and can contain anywhere from 20-4000 sensors. Hence the need to give the user ability to create their own displays with data in tabular and plot form. 

 

My question is: 

Could a LabVIEW vi have the ability to allow the user to create new tabbed pages within a window? Not really looking for an explanation of how to do it (but an example would be welcome). I just want to know if it is possible.

 

Thank you.


It is difficult to tell from a purely written description exactly what you need.  You might want to show pictures of your existing application, and maybe describe its structure. First thing I would ask if you were a new client is what your database or database-like storage technology is; as "tabbed pages" is trivial.


Thanks. I think I've made a pretty good description of what I'm looking for in other replies. "Tabbed Pages" is my attempt at trying to describe what a tab control is to someone who may not be familiar with the term. I would like the user to be able to generate their own within the application (at runtime), but tab controls seem to only be available at compile time. Outside of any user-generated packages or hacks, LabVIEW does not allow for this.

0 Kudos
Message 21 of 26
(438 Views)

@noblepete wrote:.

Thanks. I think I've made a pretty good description of what I'm looking for in other replies. "Tabbed Pages" is my attempt at trying to describe what a tab control is to someone who may not be familiar with the term. I would like the user to be able to generate their own within the application (at runtime), but tab controls seem to only be available at compile time. Outside of any user-generated packages or hacks, LabVIEW does not allow for this.


I'll try then.  If "generate their own" means they can create new pages with charts or lists and they can configure what data they want to see (example: "I want a new chart page with 4 graphs with the top two graphs showing voltage and current of our six power supplies and the bottom two showing power calculations and several senors") then I done stuff like that in LabVIEW multiple times.  In general, selectable and dynamic pages, often arranged as "tabs", is to me standard application design.  However, this is all done with subpanels, not the "Tab Control", which is a limited technology useful for beginners.  I seldom use "Tab Controls", and never use them as actual tabs.

Message 22 of 26
(431 Views)

@drjdpowell wrote:

@noblepete wrote:.

Thanks. I think I've made a pretty good description of what I'm looking for in other replies. "Tabbed Pages" is my attempt at trying to describe what a tab control is to someone who may not be familiar with the term. I would like the user to be able to generate their own within the application (at runtime), but tab controls seem to only be available at compile time. Outside of any user-generated packages or hacks, LabVIEW does not allow for this.


I'll try then.  If "generate their own" means they can create new pages with charts or lists and they can configure what data they want to see (example: "I want a new chart page with 4 graphs with the top two graphs showing voltage and current of our six power supplies and the bottom two showing power calculations and several senors") then I done stuff like that in LabVIEW multiple times.  In general, selectable and dynamic pages, often arranged as "tabs", is to me standard application design.  However, this is all done with subpanels, not the "Tab Control", which is a limited technology useful for beginners.  I seldom use "Tab Controls", and never use them as actual tabs.


Thank you. It sounds like you're saying that a subpanel is something that the user of an application can create and configure at runtime, if the developer implemented it. I wonder how you could organize and quickly access up to 60 (or even more) of these subpanels if needed.

0 Kudos
Message 23 of 26
(421 Views)

@noblepete wrote:


Thank you. It sounds like you're saying that a subpanel is something that the user of an application can create and configure at runtime, if the developer implemented it. I wonder how you could organize and quickly access up to 60 (or even more) of these subpanels if needed.


Kind of, but not exactly. The basic idea is that the developer creates a VI with all the relevant code and UI components. You can then create multiple copies of that VI dynamically, where each copy works with its own data. Depending on how you build your code, it's also possible to make specific components of your UI manageable like that, but that's more complicated and based on your description, I don't think you need it and I think showing a single subpanel and just changing the VI in it is probably enough for you.

 

To be clear, I think there's been some miscommunication here because of the use of the term "tabs". As people suggest, a tab control in LV can't be modified at run time. I also happen to think, like most others (and apparently, like your users who need to change the tab name to have just a number to fit many of them on the screen), that it's not a good UI device for something with a lot of options.

 

However, once you get to working with the subpanel, the tab part is fairly easy, as suggested, and can be handled using any number of options, such as:

 

  1. The .NET tab.
  2. A picture control.
  3. A single row of a multicolumn listbox with mouse down events.
  4. A listbox, which is more usable in most cases (essentially like a tab, but vertical).
  5. A dropdown, which takes less space, but requires two clicks.
  6. Something binding tabs to keypresses on a dedicated keyboard.
  7. Using speech recognition to navigate.
  8. ...

 

The point is to get comfortable with the idea of dynamically calling and working with VIs and subpanels, as that will probably require most of your effort. It does require some understanding of how LV works and I'm sure will give you enough of a challenge. For example, depending on what you've got, you might need to do things like having only one VI and loading the data from a DB each time, etc.


___________________
Try to take over the world!
Message 24 of 26
(412 Views)

@tst wrote:

@noblepete wrote:


Thank you. It sounds like you're saying that a subpanel is something that the user of an application can create and configure at runtime, if the developer implemented it. I wonder how you could organize and quickly access up to 60 (or even more) of these subpanels if needed.


Kind of, but not exactly. The basic idea is that the developer creates a VI with all the relevant code and UI components. You can then create multiple copies of that VI dynamically, where each copy works with its own data. Depending on how you build your code, it's also possible to make specific components of your UI manageable like that, but that's more complicated and based on your description, I don't think you need it and I think showing a single subpanel and just changing the VI in it is probably enough for you.

 

To be clear, I think there's been some miscommunication here because of the use of the term "tabs". As people suggest, a tab control in LV can't be modified at run time. I also happen to think, like most others (and apparently, like your users who need to change the tab name to have just a number to fit many of them on the screen), that it's not a good UI device for something with a lot of options.

 

However, once you get to working with the subpanel, the tab part is fairly easy, as suggested, and can be handled using any number of options, such as:

 

  1. The .NET tab.
  2. A picture control.
  3. A single row of a multicolumn listbox with mouse down events.
  4. A listbox, which is more usable in most cases (essentially like a tab, but vertical).
  5. A dropdown, which takes less space, but requires two clicks.
  6. Something binding tabs to keypresses on a dedicated keyboard.
  7. Using speech recognition to navigate.
  8. ...

 

The point is to get comfortable with the idea of dynamically calling and working with VIs and subpanels, as that will probably require most of your effort. It does require some understanding of how LV works and I'm sure will give you enough of a challenge. For example, depending on what you've got, you might need to do things like having only one VI and loading the data from a DB each time, etc.


Thank you for your reply. Yes it does look like a .NET tab is available and if we continue this effort, we will most likely make use of it. The use of any other control would be quirky in my opinion since everyone is used to tab controls (I currently have multiple tabs in Chrome, Notepad++ and Visual Studio open right now).

0 Kudos
Message 25 of 26
(406 Views)

@noblepete wrote:


I currently have multiple tabs in Chrome, Notepad++ and Visual Studio open right now


As do I. In most modern tabbing solutions you get arrows to navigate to the hidden tabs once the tabs become smaller than X pixels. I find it usually becomes inconvenient even before that point, but that's a matter of personal taste. I find that using a listbox (like the LV options diaog or moving the windows task bar to the side of the screen) is often better, particularly when most screens can accommodate the extra width.


___________________
Try to take over the world!
0 Kudos
Message 26 of 26
(397 Views)