#1
|
|||
|
|||
BUTTON_EVENT_Unavailable
#Create main menu object
import vizmenu menu = vizmenu.add() #Align the menu in the enter of the top of the screen. menu.setAlignment( vizmenu.CENTER ) #Scale the menu up vizmenu.MENU_FONT_SIZE = 24 #Create five menu subjects n1 = menu.add( 'n1' ) z1 = menu.add( 'z1' ) #Create sub-menu with label for n1 n_checkbox = n1.add( viz.CHECKBOX, 'n11' ) n_checkbox.setScale([3]*3) #Create sub-menu with label for z1 z_checkbox_p = z1.add( viz.CHECKBOX, 'z11' ) z_checkbox_p.setScale([3]*3) z_checkbox_n = z1.add( viz.CHECKBOX, 'z12' ) z_checkbox_n.setScale([3]*3) def onButton_trigger(obj,state): global z111 global z222 #judgement for z1 if obj == z_checkbox_p: if state == viz.DOWN: z111 = True print 'zt1=',z111 else: z111 = False #judgement for z2 if obj == z_checkbox_n: if state == viz.DOWN: z222 = True print 'zt2=',z222 else: z222 = False viz.callback(viz.BUTTON_EVENT, onButton_trigger) def onButton_trigger2(obj,state): global n11 #judgement for z1 if obj == n_checkbox: if state == viz.DOWN: n11 = True print 'n11=',n11 else: n11 = False viz.callback(viz.BUTTON_EVENT, onButton_trigger2) Why is the code only valid for the later viz.BUTTON_EVENT? But not both of them? |
#2
|
|||
|
|||
Please follow the guidelines for posting Vizard code. That way it will be easier for us to reproduce the problem and help.
|
#3
|
|||
|
|||
Thanks
Code:
import vizmenu menu = vizmenu.add() #Align the menu in the enter of the top of the screen. menu.setAlignment( vizmenu.CENTER ) #Scale the menu up vizmenu.MENU_FONT_SIZE = 24 #Create five menu subjects n1 = menu.add( 'n1' ) z1 = menu.add( 'z1' ) #Create sub-menu with label for n1 n_checkbox = n1.add( viz.CHECKBOX, 'n11' ) n_checkbox.setScale([3]*3) #Create sub-menu with label for z1 z_checkbox_p = z1.add( viz.CHECKBOX, 'z11' ) z_checkbox_p.setScale([3]*3) z_checkbox_n = z1.add( viz.CHECKBOX, 'z12' ) z_checkbox_n.setScale([3]*3) def onButton_trigger(obj,state): global z111 global z222 #judgement for z1 if obj == z_checkbox_p: if state == viz.DOWN: z111 = True print 'zt1=',z111 else: z111 = False #judgement for z2 if obj == z_checkbox_n: if state == viz.DOWN: z222 = True print 'zt2=',z222 else: z222 = False viz.callback(viz.BUTTON_EVENT, onButton_trigger) def onButton_trigger2(obj,state): global n11 #judgement for z1 if obj == n_checkbox: if state == viz.DOWN: n11 = True print 'n11=',n11 else: n11 = False viz.callback(viz.BUTTON_EVENT, onButton_trigger2) Last edited by haohaoxuexi1; 07-14-2016 at 09:10 AM. |
#4
|
|||
|
|||
If you're going to use the viz.callback command to handle button events then you should set it up with one callback function. Another way to do this is using vizact.onbuttondown and vizact.onbuttonup. In this case, you should create separate callback functions for each button event:
Code:
import vizact def n11ButtonDown(): print 'n11' def z11ButtonDown(): print 'z11' def z12ButtonDown(): print 'z12' vizact.onbuttondown(n_checkbox,n11ButtonDown) vizact.onbuttondown(z_checkbox_p,z11ButtonDown) vizact.onbuttondown(z_checkbox_n,z12ButtonDown) |
|
|