To keep the GUI up-to-date with the application state and vice versa, you use keywords as targets of widgets. Keywords are defined as members of a form, and the form is passed to the dialog box as a dialog box constructor argument. For more information, see AFXKeywords. The following script shows how you can use keywords to construct a dialog box. Figure 1 shows the Graphics Options dialog box generated by the example script. Figure 1. Graphics Options data dialog box.
class GraphicsOptionsDB(AFXDataDialog): #~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ def __init__(self, form): AFXDataDialog.__init__(self, form, 'Graphics Options', self.OK|self.APPLY|self.DEFAULTS|self.CANCEL) # Hardware frame # gb = FXGroupBox(self, 'Hardware', FRAME_GROOVE|LAYOUT_FILL_X) hardwareFrame = FXHorizontalFrame(gb, 0, 0,0,0,0, 0,0,0,0) FXLabel(hardwareFrame, 'Driver:') FXRadioButton(hardwareFrame, 'OpenGL', form.graphicsDriverKw, OPEN_GL.getId()) FXRadioButton(hardwareFrame, 'X11', form.graphicsDriverKw, X11.getId()) FXCheckButton(gb, 'Use double buffering', form.doubleBufferingKw) displayListBtn = FXCheckButton(gb, 'Use display lists', form.displayListsKw) # View Manipulation frame # gb = FXGroupBox(self, 'View Manipulation', FRAME_GROOVE|LAYOUT_FILL_X) hf = FXHorizontalFrame(gb, 0, 0,0,0,0, 0,0,0,0) FXLabel(hf, 'Drag mode:') FXRadioButton(hf, 'Fast (wireframe)', form.dragModeKw, FAST.getId()) FXRadioButton(hf, 'As is', form.dragModeKw, AS_IS.getId()) FXCheckButton(gb, 'Auto-fit after rotations', form.autoFitKw) |