wxWidgets/wxPython/demo/wxDialog.py
2003-10-01 23:28:31 +00:00

126 lines
3.9 KiB
Python

from wxPython.wx import *
from wxPython.help import *
#---------------------------------------------------------------------------
# Create and set a help provider. Normally you would do this in
# the app's OnInit as it must be done before any SetHelpText calls.
provider = wxSimpleHelpProvider()
wxHelpProvider_Set(provider)
#---------------------------------------------------------------------------
class TestDialog(wxDialog):
def __init__(self, parent, ID, title,
pos=wxDefaultPosition, size=wxDefaultSize,
style=wxDEFAULT_DIALOG_STYLE):
# Instead of calling wxDialog.__init__ we precreate the dialog
# object so we can set an extra style that must be set before
# creation, and then we create the GUI dialog using the Create
# method.
pre = wxPreDialog()
pre.SetExtraStyle(wxDIALOG_EX_CONTEXTHELP)
pre.Create(parent, ID, title, pos, size, style)
# This next step is the most important, it turns this Python
# object into the real wrapper of the dialog (instead of pre)
# as far as the wxPython extension is concerned.
self.this = pre.this
self.thisown = pre.thisown
pre.thisown = 0
# Now continue with the normal construction of the dialog
# contents
sizer = wxBoxSizer(wxVERTICAL)
label = wxStaticText(self, -1, "This is a wxDialog")
label.SetHelpText("This is the help text for the label")
sizer.Add(label, 0, wxALIGN_CENTRE|wxALL, 5)
box = wxBoxSizer(wxHORIZONTAL)
label = wxStaticText(self, -1, "Field #1:")
label.SetHelpText("This is the help text for the label")
box.Add(label, 0, wxALIGN_CENTRE|wxALL, 5)
text = wxTextCtrl(self, -1, "", size=(80,-1))
text.SetHelpText("Here's some help text for field #1")
box.Add(text, 1, wxALIGN_CENTRE|wxALL, 5)
sizer.AddSizer(box, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5)
box = wxBoxSizer(wxHORIZONTAL)
label = wxStaticText(self, -1, "Field #2:")
label.SetHelpText("This is the help text for the label")
box.Add(label, 0, wxALIGN_CENTRE|wxALL, 5)
text = wxTextCtrl(self, -1, "", size=(80,-1))
text.SetHelpText("Here's some help text for field #2")
box.Add(text, 1, wxALIGN_CENTRE|wxALL, 5)
sizer.AddSizer(box, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxALL, 5)
line = wxStaticLine(self, -1, size=(20,-1), style=wxLI_HORIZONTAL)
sizer.Add(line, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxRIGHT|wxTOP, 5)
box = wxBoxSizer(wxHORIZONTAL)
if wxPlatform != "__WXMSW__":
btn = wxContextHelpButton(self)
box.Add(btn, 0, wxALIGN_CENTRE|wxALL, 5)
btn = wxButton(self, wxID_OK, " OK ")
btn.SetDefault()
btn.SetHelpText("The OK button completes the dialog")
box.Add(btn, 0, wxALIGN_CENTRE|wxALL, 5)
btn = wxButton(self, wxID_CANCEL, " Cancel ")
btn.SetHelpText("The Cancel button cnacels the dialog. (Duh!)")
box.Add(btn, 0, wxALIGN_CENTRE|wxALL, 5)
sizer.AddSizer(box, 0, wxALIGN_CENTER_VERTICAL|wxALL, 5)
self.SetSizer(sizer)
self.SetAutoLayout(True)
sizer.Fit(self)
#---------------------------------------------------------------------------
def runTest(frame, nb, log):
win = TestDialog(frame, -1, "This is a wxDialog", size=wxSize(350, 200),
#style = wxCAPTION | wxSYSTEM_MENU | wxTHICK_FRAME
style = wxDEFAULT_DIALOG_STYLE
)
win.CenterOnScreen()
val = win.ShowModal()
if val == wxID_OK:
log.WriteText("You pressed OK\n")
else:
log.WriteText("You pressed Cancel\n")
win.Destroy()
#---------------------------------------------------------------------------
overview = """\
"""
if __name__ == '__main__':
import sys,os
import run
run.main(['', os.path.basename(sys.argv[0])])