]>
Commit | Line | Data |
---|---|---|
1 | ## import all of the wxPython GUI package | |
2 | from wxPython.wx import * | |
3 | ||
4 | """ | |
5 | I am trying to write a routine which will produce an entryform which I can | |
6 | later use to write GUI entryforms for databasis work. When you run this | |
7 | program and chose option 150 (Invoer) under "L=EAers" the following error | |
8 | appears (repeated 6 times): | |
9 | ||
10 | Gtk-CRITICAL **: file gtkwidget.c: line 1592 (gtk_widget_map): assertion | |
11 | `GTK_WIDGET_VISIBLE (widget) == TRUE' failed.=20 | |
12 | """ | |
13 | ||
14 | class ToetsInvoer(wxPanel): | |
15 | def __init__(self, parent): | |
16 | wxPanel.__init__(self, parent, -1) | |
17 | ||
18 | wxStaticText(self, -1, "wxTextCtrl", wxPoint(5, 25), wxSize(75, 20)) | |
19 | wxTextCtrl(self, 10, "", wxPoint(80, 25), wxSize(150, 20)) | |
20 | EVT_TEXT(self, 10, self.EvtText) | |
21 | ||
22 | wxStaticText(self, -1, "Passsword", wxPoint(5, 50), wxSize(75, 20)) | |
23 | wxTextCtrl(self, 20, "", wxPoint(80, 50), wxSize(150, 20), wxTE_PASSWORD) | |
24 | EVT_TEXT(self, 20, self.EvtText) | |
25 | ||
26 | wxStaticText(self, -1, "Multi-line", wxPoint(5, 75), wxSize(75, 20)) | |
27 | wxTextCtrl(self, 30, "", wxPoint(80, 75), wxSize(200, 150), wxTE_MULTILINE) | |
28 | EVT_TEXT(self, 30, self.EvtText) | |
29 | ||
30 | self.Show(true) | |
31 | ||
32 | def EvtText(self, event): | |
33 | self.log.WriteText('EvtText: %s\n' % event.GetString()) | |
34 | ||
35 | #--------------------------------------------------------------------------- | |
36 | ||
37 | ## Create a new frame class, derived from the wxPython Frame. | |
38 | class HoofRaam(wxFrame): | |
39 | ||
40 | def __init__(self, pa, id, titel): | |
41 | # First, call the base class' __init__ method to create the frame | |
42 | wxFrame.__init__(self, pa, id, titel,wxPyDefaultPosition, | |
43 | wxSize(420, 200)) | |
44 | ||
45 | self.CreateStatusBar(2) | |
46 | mainmenu = wxMenuBar() | |
47 | menu = wxMenu() | |
48 | menu.Append(100, '&Kopieer', 'Maak rugsteun') | |
49 | menu.Append(101, '&Nuwe stel', 'Begin nuwe databasis') | |
50 | menu.Append(150, '&Invoer', 'Toets invoervorm') | |
51 | menu.AppendSeparator() | |
52 | menu.Append(200, 'Kl&aar', 'Gaan uit die program uit!') | |
53 | mainmenu.Append(menu, "&L=EAers") | |
54 | self.SetMenuBar(mainmenu) | |
55 | # if wxPlatform == '__WXMSW__': | |
56 | # print menu.GetHelpString(100) | |
57 | # print mainmenu.GetHelpString(101) | |
58 | # print mainmenu.GetHelpString(200) | |
59 | # self.DragAcceptFiles(true) | |
60 | ||
61 | ||
62 | ||
63 | # Associate some events with methods of this class | |
64 | self.Connect(-1, -1, wxEVT_SIZE, self.OnSize) | |
65 | self.Connect(-1, -1, wxEVT_MOVE, self.OnMove) | |
66 | self.Connect(-1, -1, wxEVT_COMMAND_MENU_SELECTED, self.OnMenuCommand) | |
67 | self.Connect(-1, -1, wxEVT_DROP_FILES, self.OnDropFiles) | |
68 | ||
69 | self.child = None | |
70 | #self.child = ToetsInvoer(self) | |
71 | ||
72 | # This method is called automatically when the CLOSE event is | |
73 | # sent to this window | |
74 | def OnCloseWindow(self, event): | |
75 | # tell the window to kill itself | |
76 | self.Destroy() | |
77 | ||
78 | ||
79 | # This method is called by the System when the window is resized, | |
80 | # because of the association above. | |
81 | def OnSize(self, event): | |
82 | size = event.GetSize() | |
83 | print "grootte:", size.width, size.height | |
84 | event.Skip() | |
85 | ||
86 | # This method is called by the System when the window is moved, | |
87 | # because of the association above. | |
88 | def OnMove(self, event): | |
89 | pos = event.GetPosition() | |
90 | print "pos:", pos.x, pos.y | |
91 | ||
92 | def OnMenuCommand(self, event): | |
93 | # why isn't this a wxMenuEvent??? | |
94 | print event, event.GetInt() | |
95 | if event.GetInt() == 200: | |
96 | self.Close() | |
97 | if event.GetInt() == 150: | |
98 | x = ToetsInvoer(self) | |
99 | if event.GetInt() == 101: | |
100 | print "Nommer 101 is gekies" | |
101 | ||
102 | def OnDropFiles(self, event): #werk net in windows | |
103 | fileList = event.GetFiles() | |
104 | for file in fileList: | |
105 | print file | |
106 | ||
107 | def OnCloseWindow(self, event): | |
108 | print 'Klaar' | |
109 | self.Destroy() | |
110 | ||
111 | #--------------------------------------------------------------------------- | |
112 | ||
113 | # Every wxWindows application must have a class derived from wxApp | |
114 | class MyProg(wxApp): | |
115 | ||
116 | # wxWindows calls this method to initialize the application | |
117 | def OnInit(self): | |
118 | ||
119 | # Create an instance of our customized Frame class | |
120 | raam = HoofRaam(NULL, -1, "Taalunie") | |
121 | raam.Show(true) | |
122 | ||
123 | # Tell wxWindows that this is our main window | |
124 | self.SetTopWindow(raam) | |
125 | ||
126 | # Return a success flag | |
127 | return true | |
128 | ||
129 | #--------------------------------------------------------------------------- | |
130 | ||
131 | ||
132 | app = MyProg(0) # Create an instance of the application class | |
133 | app.MainLoop() # Tell it to start processing events | |
134 | ||
135 | ||
136 |