wenn ich in meinem Programmierbeispiel oben in der Menüleiste auf "File" und dann auf "About" klicke, so sehe ich 1 Spinner-Element. Aber wie kann ich anstatt einem Element, zwei oder mehr solcher Elemente in meinem Frame platzieren?
So weit bin ich schon (das Spinner-Element wird im unteren Teil initialisiert):
Code: Alles auswählen
#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-
import wx
class MainWindow(wx.Frame):
def __init__(self, parent = None, id = -1, title = "Small Editor"):
# Init
wx.Frame.__init__(
self, parent, id, title, size = (400,200),
style = wx.DEFAULT_FRAME_STYLE | wx.NO_FULL_REPAINT_ON_RESIZE
)
# TextCtrl
self.control = wx.TextCtrl(self, -1, style = wx.TE_MULTILINE)
# StatusBar
self.CreateStatusBar()
# Filemenu
filemenu = wx.Menu()
# Filemenu - About
menuitem = filemenu.Append(-1, "&About", "Information about this program")
self.Bind(wx.EVT_MENU, self.OnAbout, menuitem) # Hier wird der Event-Handler angegeben
# Filemenu - Separator
filemenu.AppendSeparator()
# Filemenu - Exit
menuitem = filemenu.Append(-1, "E&xit", "Terminate the program")
self.Bind(wx.EVT_MENU, self.OnExit, menuitem) # Hier wird der Event-Handler angegeben
# Menubar
menubar = wx.MenuBar()
menubar.Append(filemenu,"&File")
self.SetMenuBar(menubar)
# Show
self.Show(True)
def OnAbout(self,event):
#sets new text
#self.control.SetValue("New Text")
self.control.Hide();
# 1 Spinner-Element
self.control = wx.SpinCtrl(self, -1, "", (40,40), (90,-1))
self.control.SetRange(1,100)
self.control.SetValue(10)
def OnExit(self,event):
self.Close(True) # Close the frame.
app = wx.PySimpleApp()
frame = MainWindow()
app.MainLoop()
# Zerstören der Objekte, damit dieses Beispiel
# im IDLE nicht nur einmal funktioniert.
del frame
del app