LabVIEW Idea Exchange

cancel
Showing results for 
Search instead for 
Did you mean: 
Darren

Add QControls to LabVIEW Core

Status: New

The QControl Toolkit is a fantastic library of tools for developing reusable UI components. I think they are a great alternative to XControls. Not only does the QControl Toolkit provide me the framework for developing my own QControls, but it also ships with some fully functional QControls, my favorite probably being the tree with checkboxes.

 

I think QControls are useful enough for all LabVIEW users that they should be part of the LabVIEW core product instead of an add-on toolkit.

17 Comments
TheQ
Active Participant
Personally I don't even want to install all this stuff, and I'm assuming NI doesn't want to be on the hook for shipping something that depends on it.

That is true. I will have to remove most if not all of the dependencies before NI takes it over and I have already began working on it. 

 

Most of the dependencies were for simple things for the wizard to create new QControls like sorting the lists and not for the QControls themselves.

Quentin "Q" Alldredge

Chief LabVIEW Architect, Testeract | Owner, Q Software Innovations, LLC (QSI)
Director, GCentral | Admin, LabVIEW Wiki | Creator, The QControl Toolkit
Certified LabVIEW Architect | LabVIEW Champion | NI Alliance Partner



smithed
Member



I will have to remove most if not all of the dependencies before NI takes it over and I have already began working on it per Darren’s request..

Sweet

 


I'd much rather NI include OpenG and MGI as part of the base LabVIEW install

It wouldn't bother me so much if the names were sufficiently different. I have 3 trim whitespaces right now (builtin, drjdp, openg) and if I want to use the builtin I have to figure out which is which. Similarly from quickdrop I have several scan from strings as of this install, I have several sort arrays (builtin, your vim, openg), etc etc. Since NI doesn't provide a package management system and free VIPM has no automated package install, any version of these packages would presumably be installed through a non-standard mechanism, which gets to the question of how to manage packages with existing dependencies on the original packages, how updates are made and installed, etc. It seems like quite a mess.

BertMcMahan
Active Participant

This looks super promising, but I'm having a little trouble getting started. I'm specifically trying to get the DataGrid Qcontrol going. I have it installed and the right-click menu comes up letting me configure the thing, but when I click OK it doesn't seem like anything happened. I can't find documentation on how to use it. I see the documentation on installing it over on the Wiki, but not for actually using it. Any thoughts?

TheQ
Active Participant

The DataGrid QControl is based on a Multicolumn Listbox (MCLB).  If you have the right-click configuration stuff working then the configuration is saved in the control during edit time and used by the Event Handler during run-time.  In the VI you are using it in, you handle it just like any other QControl.

 

  • First, drop the constructor, "New DataGrid.vi", and wire the reference of the MCLB into it. 
  • Then pass the QControl wire around as you would (and instead of) the reference wire. 
    • You can use the Property Node on this wire to access any of the usual MCLB properties and the extended properties. 
    • There are public methods in the DataGrid class that can also be used.  All MCLB built-in methods are available too but maybe harder to find because they belong to a parent class.  Consider using MGI's Class Method Browser to find them easier. Unfortunately, there is not a way to use the Invoke Node on a class wire like the Property Node can be.
  • In the cleanup code of your software, use the "Close DataGrid.vi" to close references.

For more examples of QControl usage, see the examples in the example finder.

Quentin "Q" Alldredge

Chief LabVIEW Architect, Testeract | Owner, Q Software Innovations, LLC (QSI)
Director, GCentral | Admin, LabVIEW Wiki | Creator, The QControl Toolkit
Certified LabVIEW Architect | LabVIEW Champion | NI Alliance Partner



TheQ
Active Participant

If you have support questions about QControls you can post them at the QControl Enthusiasts community page here:

 

https://forums.ni.com/t5/QControl-Enthusiasts/gp-p/5383?profile.language=en

 

If you want to discuss this idea in the idea exchange, feel free to continue posting here. 

 

Please keep the kudos coming! Thanks!

Quentin "Q" Alldredge

Chief LabVIEW Architect, Testeract | Owner, Q Software Innovations, LLC (QSI)
Director, GCentral | Admin, LabVIEW Wiki | Creator, The QControl Toolkit
Certified LabVIEW Architect | LabVIEW Champion | NI Alliance Partner



perj
Member

Today I am using XControls for UI development, but I consider turning to QControls. Although I think XControls works OK as long as you consider the limitations and bugs in the implementation, I am aware of the fact that they will not make it into NXG. And that will for sure result in redesign work at some point. As far as I can see the QControls are developed with LabVIEW components, and then I believe QControls can be converted to NXG code? Has anyone tried doing this succesfully?

TheQ
Active Participant
@smithed said:

 

Personally I don't even want to install all this stuff, and I'm assuming NI doesn't want to be on the hook for shipping something that depends on it.

Understandable.  The dependencies were for relatively small things as part of the wizard.  They have been removed.

Quentin "Q" Alldredge

Chief LabVIEW Architect, Testeract | Owner, Q Software Innovations, LLC (QSI)
Director, GCentral | Admin, LabVIEW Wiki | Creator, The QControl Toolkit
Certified LabVIEW Architect | LabVIEW Champion | NI Alliance Partner