import SciParam dialog = SciParam.ParameterDialog(...) notebook = SciParam.ParameterNotebookDialog(...)
from SciParam import ParameterDialog, ParameterNotebookDialog dialog = ParameterDialog(...) notebook = ParameterNotebookDialog(...)
from SciParam import * dialog = ParameterDialog(...) notebook = ParameterNotebookDialog(...)
dialog = ParameterDialog(parent, -1, 'Dialog Title', parameter, columns=2)
ParameterNotebookDialog takes a list of pages instead of parameters as argument. Each page is a 2-tuple consisting of page name and parameter list for this page:
dialog = ParameterNotebookDialog(parent, -1, 'Parameter Title', [('Page 1', parameter1), ('Page 2', parameter2)], columns=2)
#!/usr/bin/env python # # Copyright (C) 2002 by Intevation GmbH # Authors: # Thomas Arendsen Hein <thomas@intevation.de> # # This program is free software under the GPL (>=v2) # Read the file COPYING coming with the software for details. """ Notebook full of Scientific Parameter Controls for wxPython """ from wxPython.wx import * from SciParam import FloatParam, IntParam, StringParam, ChoiceParam, DistParam from SciParam import ParameterNotebookDialog class MyApp(wxApp): def OnInit(self): parameter1 = [ StringParam('Name', 'a unique identifier', required=1, value='Silicon', comment='This is an example for a required value.\n' 'The user can change this comment to note the ' 'source of this information.'), StringParam('Symbol', 'chemical symbol', required=1, value='Si'), IntParam('Atomic No', 'Number in the periodic table of the elements', value=14, wrange='[1;260]', erange='[1;oo['), FloatParam('Atomic Mass', None, value=28.0855, erange='[0;oo['), FloatParam('Melting Point', 'under normal conditions', '°C', value=1414, wrange='[-273.15;4e3]', erange='[-273.15;oo['), FloatParam('Boiling Point', 'under normal conditions', '°C', value=3265, wrange='[-270;6e3]', erange='[-273.15;oo['), ChoiceParam('Crystal', 'crystal structure', choices=[None, 'simple cubic', 'face centered cubic', 'body centered cubic', 'diamond cubic', 'tetragonal', 'orthorombic', 'monoclinc'], value='face centered cubic', long=1), DistParam('Temperature', 'temperature of samples', '°C', default=20, value=17.5, erange='[-273.15;oo[', dist=(3.7, 'normal')), DistParam('Volume', 'Volume of used samples', 'cm³', default='2;20/uniform', erange='[0;oo['), ChoiceParam('Verified', 'Have these values been checked?', choices=ChoiceParam.yes_no, value=0), ] parameter2 = [ StringParam('Name', 'a unique identifier'), IntParam('Things', 'Number of things', 'pcs', erange='[0;oo['), FloatParam('Price', 'per thing', '¤', value=0.49, default=1.20, wrange='[0.50;1e5[', erange='[0;oo[', comment='This is too cheap'), ChoiceParam('Size', 'Select one of 3m, 5m, 7m', 'm', default=5, choices=[3, 5, 7]), ChoiceParam('In Stock', 'Are there enough things?'), ] parameter = [["Element", parameter1], ["Things", parameter2]] dialog = ParameterNotebookDialog(NULL, -1, 'Scientific Parameter Notebook', parameter, columns=2) if dialog.ShowModal() == wxID_OK: print "OK" else: print "Cancel" for page in parameter: for par in page[1]: print par.name, "=", par.value print " comment =", par.comment if isinstance(par, DistParam): print " dist =", par.dist dialog.Destroy() return true if __name__ == "__main__": try: import locale locale.setlocale(locale.LC_ALL, "") except ImportError: # the locale module may not be available on some systems pass app = MyApp() app.MainLoop()