Added menu sample, and some other minor changes to the demo
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@16005 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -32,6 +32,7 @@ _treeList = [
|
|||||||
'wxImageFromStream',
|
'wxImageFromStream',
|
||||||
'wxArtProvider',
|
'wxArtProvider',
|
||||||
'ScrolledPanel',
|
'ScrolledPanel',
|
||||||
|
'wxMenu',
|
||||||
]),
|
]),
|
||||||
|
|
||||||
# managed windows == things with a caption you can close
|
# managed windows == things with a caption you can close
|
||||||
@@ -78,6 +79,7 @@ _treeList = [
|
|||||||
'wxListBox',
|
'wxListBox',
|
||||||
'wxListCtrl',
|
'wxListCtrl',
|
||||||
'wxListCtrl_virtual',
|
'wxListCtrl_virtual',
|
||||||
|
'wxMenu',
|
||||||
'wxNotebook',
|
'wxNotebook',
|
||||||
'wxPopupWindow',
|
'wxPopupWindow',
|
||||||
'wxRadioBox',
|
'wxRadioBox',
|
||||||
|
@@ -10,8 +10,7 @@ class ScrolledPanel(wxScrolledWindow):
|
|||||||
def __init__(self, parent, log):
|
def __init__(self, parent, log):
|
||||||
self.log = log
|
self.log = log
|
||||||
wxScrolledWindow.__init__(self, parent, -1,
|
wxScrolledWindow.__init__(self, parent, -1,
|
||||||
style = wxTAB_TRAVERSAL|wxHSCROLL|wxVSCROLL)
|
style = wxTAB_TRAVERSAL)
|
||||||
|
|
||||||
|
|
||||||
box = wxBoxSizer(wxVERTICAL)
|
box = wxBoxSizer(wxVERTICAL)
|
||||||
box.Add(wxStaticText(self, -1,
|
box.Add(wxStaticText(self, -1,
|
||||||
@@ -73,10 +72,6 @@ class ScrolledPanel(wxScrolledWindow):
|
|||||||
|
|
||||||
#----------------------------------------------------------------------
|
#----------------------------------------------------------------------
|
||||||
|
|
||||||
## class ScrollToHandler(wxEvtHandler):
|
|
||||||
## """This class helps to scroll the panel
|
|
||||||
|
|
||||||
#----------------------------------------------------------------------
|
|
||||||
|
|
||||||
def runTest(frame, nb, log):
|
def runTest(frame, nb, log):
|
||||||
win = ScrolledPanel(nb, log)
|
win = ScrolledPanel(nb, log)
|
||||||
|
@@ -228,7 +228,10 @@ class TestListCtrlPanel(wxPanel, wxColumnSorterMixin):
|
|||||||
self.log.WriteText("OnColClick: %d\n" % event.GetColumn())
|
self.log.WriteText("OnColClick: %d\n" % event.GetColumn())
|
||||||
|
|
||||||
def OnColRightClick(self, event):
|
def OnColRightClick(self, event):
|
||||||
self.log.WriteText("OnColRightClick: %d\n" % event.GetColumn())
|
item = self.list.GetColumn(event.GetColumn())
|
||||||
|
self.log.WriteText("OnColRightClick: %d %s\n" %
|
||||||
|
(event.GetColumn(), (item.GetText(), item.GetAlign(),
|
||||||
|
item.GetWidth(), item.GetImage())))
|
||||||
|
|
||||||
def OnColBeginDrag(self, event):
|
def OnColBeginDrag(self, event):
|
||||||
self.log.WriteText("OnColBeginDrag\n")
|
self.log.WriteText("OnColBeginDrag\n")
|
||||||
@@ -311,19 +314,17 @@ def runTest(frame, nb, log):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
overview = """\
|
overview = """\
|
||||||
A list control presents lists in a number of formats: list view, report view, icon view and small icon view. Elements are numbered from zero.
|
A list control presents lists in a number of formats: list view, report view, icon view and small icon view. Elements are numbered from zero.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import sys,os
|
||||||
|
import run
|
||||||
|
run.main(['', os.path.basename(sys.argv[0])])
|
||||||
|
|
||||||
|
165
wxPython/demo/wxMenu.py
Normal file
165
wxPython/demo/wxMenu.py
Normal file
@@ -0,0 +1,165 @@
|
|||||||
|
#-------------------------------------------------------------------
|
||||||
|
# essaimenu.py
|
||||||
|
#
|
||||||
|
# menus in wxPython 2.3.3
|
||||||
|
#
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
from wxPython.wx import *
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
class MyFrame(wxFrame):
|
||||||
|
|
||||||
|
def __init__(self, parent, id, log):
|
||||||
|
wxFrame.__init__(self, parent, id, 'Playing with menus', size=(400, 200))
|
||||||
|
self.log = log
|
||||||
|
self.CenterOnScreen()
|
||||||
|
|
||||||
|
self.CreateStatusBar()
|
||||||
|
self.SetStatusText("This is the statusbar")
|
||||||
|
|
||||||
|
# Prepare the menu bar
|
||||||
|
menuBar = wxMenuBar()
|
||||||
|
|
||||||
|
# 1st menu from left
|
||||||
|
menu1 = wxMenu()
|
||||||
|
menu1.Append(101, "Mercury", "This the text in the Statusbar")
|
||||||
|
menu1.Append(102, "Venus", "")
|
||||||
|
menu1.Append(103, "Earth", "You may select Earth too")
|
||||||
|
menu1.AppendSeparator()
|
||||||
|
menu1.Append(104, "Exit", "Close this frame")
|
||||||
|
# Add menu to the menu bar
|
||||||
|
menuBar.Append(menu1, "&Planets")
|
||||||
|
|
||||||
|
# 2nd menu from left
|
||||||
|
menu2 = wxMenu()
|
||||||
|
menu2.Append(201, "Hydrogen")
|
||||||
|
menu2.Append(202, "Helium")
|
||||||
|
# a submenu in the 2nd menu
|
||||||
|
submenu = wxMenu()
|
||||||
|
submenu.Append(2031,"Lanthanium")
|
||||||
|
submenu.Append(2032,"Cerium")
|
||||||
|
submenu.Append(2033,"Praseodymium")
|
||||||
|
menu2.AppendMenu(203, "Lanthanides", submenu)
|
||||||
|
# Append 2nd menu
|
||||||
|
menuBar.Append(menu2, "&Elements")
|
||||||
|
|
||||||
|
menu3 = wxMenu()
|
||||||
|
menu3.Append(301, "IDLE", "a Python shell using tcl/tk as GUI", wxITEM_RADIO)
|
||||||
|
menu3.Append(302, "PyCrust", "a Python shell using wxPython as GUI", wxITEM_RADIO)
|
||||||
|
menu3.Append(303, "psi", "a simple Python shell using wxPython as GUI", wxITEM_RADIO)
|
||||||
|
menu3.AppendSeparator()
|
||||||
|
menu3.Append(304, "project1", "", wxITEM_NORMAL)
|
||||||
|
menu3.Append(305, "project2", "", wxITEM_NORMAL)
|
||||||
|
menuBar.Append(menu3, "&Shells")
|
||||||
|
|
||||||
|
menu4 = wxMenu()
|
||||||
|
menu4.Append(401, "letters", "abcde...", wxITEM_CHECK)
|
||||||
|
menu4.Append(402, "digits", "123...", wxITEM_CHECK)
|
||||||
|
menu4.Append(403, "letters and digits", "abcd... + 123...", wxITEM_CHECK)
|
||||||
|
menuBar.Append(menu4, "Chec&k")
|
||||||
|
|
||||||
|
menu5 = wxMenu()
|
||||||
|
menu5.Append(501, "Interesting thing\tCtrl+A", "Note the shortcut!")
|
||||||
|
|
||||||
|
menu5.AppendSeparator()
|
||||||
|
menu5.Append(502, "Hello\tShift+H")
|
||||||
|
menuBar.Append(menu5, "&Fun")
|
||||||
|
|
||||||
|
self.SetMenuBar(menuBar)
|
||||||
|
|
||||||
|
# Menu events
|
||||||
|
EVT_MENU(self, 101, self.Menu101)
|
||||||
|
EVT_MENU(self, 102, self.Menu102)
|
||||||
|
EVT_MENU(self, 103, self.Menu103)
|
||||||
|
EVT_MENU(self, 104, self.OnCloseWindow)
|
||||||
|
|
||||||
|
EVT_MENU(self, 201, self.Menu201)
|
||||||
|
EVT_MENU(self, 202, self.Menu202)
|
||||||
|
EVT_MENU(self, 2031, self.Menu2031)
|
||||||
|
EVT_MENU(self, 2032, self.Menu2032)
|
||||||
|
EVT_MENU(self, 2033, self.Menu2033)
|
||||||
|
|
||||||
|
EVT_MENU(self, 301, self.Menu301To303)
|
||||||
|
EVT_MENU(self, 302, self.Menu301To303)
|
||||||
|
EVT_MENU(self, 303, self.Menu301To303)
|
||||||
|
EVT_MENU(self, 304, self.Menu304)
|
||||||
|
EVT_MENU(self, 305, self.Menu305)
|
||||||
|
|
||||||
|
EVT_MENU_RANGE(self, 401, 403, self.Menu401To403)
|
||||||
|
|
||||||
|
EVT_MENU(self, 501, self.Menu501)
|
||||||
|
EVT_MENU(self, 502, self.Menu502)
|
||||||
|
|
||||||
|
# Methods
|
||||||
|
|
||||||
|
def Menu101(self, event):
|
||||||
|
self.log.write('Welcome to Mercury\n')
|
||||||
|
|
||||||
|
def Menu102(self, event):
|
||||||
|
self.log.write('Welcome to Venus\n')
|
||||||
|
|
||||||
|
def Menu103(self, event):
|
||||||
|
self.log.write('Welcome to the Earth\n')
|
||||||
|
|
||||||
|
def OnCloseWindow(self, event):
|
||||||
|
self.Destroy()
|
||||||
|
|
||||||
|
def Menu201(self, event):
|
||||||
|
self.log.write('Chemical element number 1\n')
|
||||||
|
|
||||||
|
def Menu202(self, event):
|
||||||
|
self.log.write('Chemical element number 2\n')
|
||||||
|
|
||||||
|
def Menu2031(self, event):
|
||||||
|
self.log.write('Element number 57\n')
|
||||||
|
|
||||||
|
def Menu2032(self, event):
|
||||||
|
self.log.write('Element number 58\n')
|
||||||
|
|
||||||
|
def Menu2033(self, event):
|
||||||
|
self.log.write('Element number 59\n')
|
||||||
|
|
||||||
|
def Menu301To303(self, event):
|
||||||
|
id = event.GetId()
|
||||||
|
self.log.write('Event id: %d\n' % id)
|
||||||
|
|
||||||
|
def Menu304(self, event):
|
||||||
|
self.log.write('Not yet available\n')
|
||||||
|
|
||||||
|
def Menu305(self, event):
|
||||||
|
self.log.write('Still vapour\n')
|
||||||
|
|
||||||
|
def Menu401To403(self, event):
|
||||||
|
self.log.write('From a EVT_MENU_RANGE event\n')
|
||||||
|
|
||||||
|
def Menu501(self, event):
|
||||||
|
self.log.write('Look in the code how the shortcut has been realized\n')
|
||||||
|
|
||||||
|
def Menu502(self, event):
|
||||||
|
self.log.write('Hello from Jean-Michel\n')
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
def runTest(frame, nb, log):
|
||||||
|
win = MyFrame(frame, -1, log)
|
||||||
|
frame.otherWin = win
|
||||||
|
win.Show(true)
|
||||||
|
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------
|
||||||
|
|
||||||
|
|
||||||
|
overview = """\
|
||||||
|
A demo of using wxMenuBar and wxMenu in various ways.
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import sys,os
|
||||||
|
import run
|
||||||
|
run.main(['', os.path.basename(sys.argv[0])])
|
||||||
|
|
@@ -80,6 +80,7 @@ class TestTreeCtrlPanel(wxPanel):
|
|||||||
EVT_RIGHT_UP(self.tree, self.OnRightUp)
|
EVT_RIGHT_UP(self.tree, self.OnRightUp)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def OnRightClick(self, event):
|
def OnRightClick(self, event):
|
||||||
pt = event.GetPosition();
|
pt = event.GetPosition();
|
||||||
item, flags = self.tree.HitTest(pt)
|
item, flags = self.tree.HitTest(pt)
|
||||||
@@ -88,7 +89,6 @@ class TestTreeCtrlPanel(wxPanel):
|
|||||||
self.tree.SelectItem(item)
|
self.tree.SelectItem(item)
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
def OnRightUp(self, event):
|
def OnRightUp(self, event):
|
||||||
pt = event.GetPosition();
|
pt = event.GetPosition();
|
||||||
item, flags = self.tree.HitTest(pt)
|
item, flags = self.tree.HitTest(pt)
|
||||||
@@ -165,15 +165,15 @@ def runTest(frame, nb, log):
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
overview = """\
|
overview = """\
|
||||||
A tree control presents information as a hierarchy, with items that may be expanded to show further items. Items in a tree control are referenced by wxTreeItemId handles.
|
A tree control presents information as a hierarchy, with items that may be expanded to show further items. Items in a tree control are referenced by wxTreeItemId handles.
|
||||||
|
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == '__main__':
|
||||||
|
import sys,os
|
||||||
|
import run
|
||||||
|
run.main(['', os.path.basename(sys.argv[0])])
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user