Files
linuxcncAllWasm/share/qtvcp/panels/sim_panel/sim_panel_handler.py
2026-08-20 06:17:39 +08:00

122 lines
4.1 KiB
Python

############################
# **** IMPORT SECTION **** #
############################
from qtpy.QtCore import Qt
from qtpy.QtWidgets import QWidget
from qtvcp.core import Status, Action
# Set up logging
from qtvcp import logger
###########################################
# **** instantiate libraries section **** #
###########################################
STATUS = Status()
ACTION = Action()
LOG = logger.getLogger(__name__)
# Set the log level for this module
#LOG.setLevel(logger.INFO) # One of DEBUG, INFO, WARNING, ERROR, CRITICAL
###################################
# **** HANDLER CLASS SECTION **** #
###################################
class HandlerClass:
########################
# **** INITIALIZE **** #
########################
# widgets allows access to widgets from the qtvcp files
# at this point the widgets and hal pins are not instantiated
def __init__(self, halcomp,widgets,paths):
self.hal = halcomp
self.w = widgets
self.PATHS = paths
##########################################
# Special Functions called from QTVCP
##########################################
# at this point:
# the widgets are instantiated.
# the HAL pins are built but HAL is not set ready
def initialized__(self):
self.w.setFocusPolicy(Qt.NoFocus)
for widget in self.w.children():
try:
widget.setFocusPolicy(QtCore.Qt.NoFocus)
except:
pass
number = 0
if self.w.USEROPTIONS_ is not None:
LOG.debug('sim_panel user options: {}'.format(self.w.USEROPTIONS_))
for num, i in enumerate(self.w.USEROPTIONS_):
# override the default width and height of the window
if 'size=' in self.w.USEROPTIONS_[num]:
try:
strg = self.w.USEROPTIONS_[num].strip('size=')
arg = strg.split(',')
self.w.resize(int(arg[0]),int(arg[1]))
except Exception as e:
print('Error with sim_panel size setting:',self.w.USEROPTIONS_[num],e)
elif 'hide=' in self.w.USEROPTIONS_[num]:
try:
strg = self.w.USEROPTIONS_[num].strip('hide=')
arg = strg.split(',')
for i in arg:
#print (i)
try:
self.w[i].hide()
except:
pass
except Exception as e:
print('Error with sim_panel size setting:',self.w.USEROPTIONS_[num],e)
elif 'rates=' in self.w.USEROPTIONS_[num]:
try:
strg = self.w.USEROPTIONS_[num].strip('rates=')
arg = strg.split(',')
if len(arg) == 3:
for num,i in enumerate(['increment_slow','increment_med','increment_fast']):
self.w[i].setProperty('exclusiveHALValue',float(arg[num]))
except Exception as e:
print('Error with sim_panel rate setting:',self.w.USEROPTIONS_[num],e)
########################
# callbacks from STATUS #
########################
#######################
# callbacks from form #
#######################
#####################
# general functions #
#####################
#####################
# KEY BINDING CALLS #
#####################
###########################
# **** closing event **** #
###########################
##############################
# required class boiler code #
##############################
def __getitem__(self, item):
return getattr(self, item)
def __setitem__(self, item, value):
return setattr(self, item, value)
################################
# required handler boiler code #
################################
def get_handlers(halcomp,widgets,paths):
return [HandlerClass(halcomp,widgets,paths)]