how to make my own custom page for qtdragon_hd?

  • rodw
  • rodw's Avatar
  • Away
  • Platinum Member
  • Platinum Member
More
26 Apr 2023 22:35 #270018 by rodw
Thanks, Chris, I probably won't get to it until tonight. I gotta do some work some time! 
My thought would be to distribute an example panel (either this one or your simple_hal one) with a handler and a limited amount of pins.
Maybe just:
hallabel
button with handler
button without handler.

The problem I found even after trawling gihub was there were no examples of a panel to follow and the ones there were much more complicated than what we need. eg mixed up with all the gcode stuff etc.

I did find the simple_hal panel useful as I simply copied and modified it.

 

Please Log in or Create an account to join the conversation.

  • rodw
  • rodw's Avatar
  • Away
  • Platinum Member
  • Platinum Member
More
27 Apr 2023 04:20 #270028 by rodw
Almost there! Thanks for the help! The events are working
I just have to learn how to select a button from the button group and enable/disable the buttons 

Handler
Warning: Spoiler!

Output
Warning: Spoiler!


The two belts are connected from the motor to the spindle via an intermediate idler pulley. Balts therefore cannot be on the same level (eg, 1, 5 or 3, 7). So we need to enable and disable buttons. The eaisest way I thought was to enable all buttons and then disable the button opposite the selected belt.

Please Log in or Create an account to join the conversation.

  • rodw
  • rodw's Avatar
  • Away
  • Platinum Member
  • Platinum Member
More
27 Apr 2023 06:20 #270035 by rodw
CHange of plans. this is just as efficient
    def frontBeltSelected(self, number):
        print('Front Belt # ',number, " pressed")
        self.belt_5.setEnabled(true)
        self.belt_6.setEnabled(true)
        self.belt_7.setEnabled(true)            
        self.belt_8.setEnabled(true)
        backnumber = number + 4
        for x in range(5,9):
            if (x == 5):
                self.belt_5.setEnabled(false)
            elif (x == 6):
                self.belt_6.setEnabled(false)
            elif (x == 7):
                self.belt_7.setEnabled(false)
            elif (x == 8):
                self.belt_8.setEnabled(false)
        #disable button backnumber    
        print("Disabling Back Number ", backnumber)

but its  generating an error.
[QTvcp.QTVCP.WIDGETS.SIMPLE_WIDGETS][ERROR]  (belt_8 called exec in error:'HandlerClass' object has no attribute 'belt_1' (simple_widgets.py:617)
[QTvcp.QTVCP.WIDGETS.SIMPLE_WIDGETS][WARNING]     Command was INSTANCE.Spindle_Extras.backBeltSelected(8) (simple_widgets.py:618)
I guess I don't understand the class methods yet.
What is  syntax to enable and disable a button?

Please Log in or Create an account to join the conversation.

More
27 Apr 2023 06:24 #270036 by cmorley
In the handler file, widgets are referenced as such:

self.w.WIDGETNAME
The following user(s) said Thank You: rodw

Please Log in or Create an account to join the conversation.

More
27 Apr 2023 06:24 #270038 by cmorley
Also true and false start with a capital in python.

Please Log in or Create an account to join the conversation.

  • rodw
  • rodw's Avatar
  • Away
  • Platinum Member
  • Platinum Member
More
27 Apr 2023 07:41 #270041 by rodw
Thanks Chris. That should be an easy fix.

So that brings me to the final requirement and that is to save the state of the 8 belts. I thought the preference file would let me do that, but I'm not seeing its extendable by the user but I know Phill saves a lot of data in QTpplasmac. How can we do that?

I did see some settings on the screen_options widget but ts not well documented.

Please Log in or Create an account to join the conversation.

More
27 Apr 2023 09:02 #270046 by phillc54

Please Log in or Create an account to join the conversation.

  • rodw
  • rodw's Avatar
  • Away
  • Platinum Member
  • Platinum Member
More
27 Apr 2023 10:21 #270052 by rodw

You can use preferences:

linuxcnc.org/docs/devel/html/gui/qtvcp-l...ode_preferences_code

Thanks. This user needs more than 6 lines of documentation 
But I have been looking at qtplasmac_handler.py which is next level crazy!
I'll have  bit of a play but a simple example would be nice.
Everything else is finished and working....

Please Log in or Create an account to join the conversation.

More
27 Apr 2023 10:34 - 27 Apr 2023 10:42 #270053 by phillc54
Something like this:

Read a preference:       
# preference name, default value, type, section name
value = self.w.PREFS_.getpref('DRO_Color', '', str, 'CUSTOM_FORM_ENTRIES')

Write a preference:
# preference name, value, type, section name
self.w.PREFS_.putpref('DRO_Color', color, str, 'CUSTOM_FORM_ENTRIES')

Edit: sorry I should have added that the type could be str, bool, int, or float

 
Last edit: 27 Apr 2023 10:42 by phillc54.
The following user(s) said Thank You: rodw

Please Log in or Create an account to join the conversation.

  • rodw
  • rodw's Avatar
  • Away
  • Platinum Member
  • Platinum Member
More
27 Apr 2023 10:50 #270054 by rodw
Thanks, what I ned to work with are the button enabled flags
Is this valid to read the value?
myval = self.w.belt_5.Enabled

Please Log in or Create an account to join the conversation.

Moderators: cmorley
Time to create page: 0.085 seconds
Powered by Kunena Forum