def _init_ctrls(self, parent):
wx.SplitterWindow.__init__(self, parent,
style=wx.SUNKEN_BORDER | wx.SP_3D)
self.SetMinimumPaneSize(1)
self._init_MenuItems()
if self.VARIABLE_PANEL_TYPE is not None:
self.VariableEditor = VariablePanel(self, self, self.Controler, self.VARIABLE_PANEL_TYPE, self.Debug)
self.VariableEditor.SetTagName(self.TagName)
else:
self.VariableEditor = None
self._init_Editor(self)
if self.Editor is not None and self.VariableEditor is not None:
self.SplitHorizontally(self.VariableEditor, self.Editor, 200)
elif self.VariableEditor is not None:
self.Initialize(self.VariableEditor)
elif self.Editor is not None:
self.Initialize(self.Editor)
python类SplitterWindow()的实例源码
def _create_CodePanel(self, prnt):
self.CodeEditorPanel = wx.SplitterWindow(prnt)
self.CodeEditorPanel.SetMinimumPaneSize(1)
self.VariablesPanel = VariablesEditor(self.CodeEditorPanel,
self.ParentWindow,
self.Controler)
if self.CODE_EDITOR is not None:
self.CodeEditor = self.CODE_EDITOR(self.CodeEditorPanel,
self.ParentWindow, self.Controler)
self.CodeEditorPanel.SplitHorizontally(self.VariablesPanel,
self.CodeEditor, 150)
else:
self.CodeEditorPanel.Initialize(self.VariablesPanel)
return self.CodeEditorPanel
def __init__(self, *args, **kwds):
# begin wxGlade: help_window.__init__
kwds["style"] = wx.MAXIMIZE | wx.CLOSE_BOX | wx.THICK_FRAME|wx.CAPTION
wx.Dialog.__init__(self, *args, **kwds)
self.window_1 = wx.SplitterWindow(self, wx.ID_ANY, style=wx.SP_3D | wx.SP_BORDER)
self.window_1_pane_left = wx.Panel(self.window_1, wx.ID_ANY)
self.html_left = html.HtmlWindow(self.window_1_pane_left, wx.ID_ANY, size=(1, 1))
self.window_1_pane_right = wx.Panel(self.window_1, wx.ID_ANY)
self.html_right = html.HtmlWindow(self.window_1_pane_right, wx.ID_ANY, size=(1, 1))
#self.Bind(wx.EVT_COself.on_hyperlink,self.html_left)
self.Bind(wx.html.EVT_HTML_LINK_CLICKED,self.on_hyperlink,self.html_left)
#self.Bind(wx.EVT_SIZE,self.on_resize)
self.__set_properties()
self.__do_layout()
#self.on_resize(None)
self.load_htmlpage()
# end wxGlade
def __init__(self, parent):
"""Constructor"""
wx.Panel.__init__(self, parent)
split = wx.SplitterWindow(self)
panelOne = GridPanel(split)
panelTwo = GridPanel(split)
ScrollSync(panelOne, panelTwo)
split.SplitVertically(panelOne, panelTwo)
split.SetSashGravity(0.5)
sizer = wx.BoxSizer(wx.VERTICAL)
sizer.Add(split, 1, wx.EXPAND)
self.SetSizer(sizer)
def __init__(self, parent, title):
(self.display_length_, self.display_height_) = wx.GetDisplaySize()
self.frame_width_ = self.display_length_ * 90 / 100
self.frame_height_ = self.display_height_ * 90 / 100
self.answer_panel_width_ = self.frame_width_ * 15 / 100
super(MainFrame, self).__init__(parent=parent, title=title, size=(self.frame_width_, self.frame_height_))
self.splitter = wx.SplitterWindow(parent=self, style=wx.SP_LIVE_UPDATE)
self.splitter.SetMinimumPaneSize(min=100)
self.web_panel = WebPanel(parent=self.splitter)
self.answer_panel = wx.Panel(parent=self.splitter)
self.answers_box = wx.BoxSizer(orient=wx.VERTICAL)
self.answers_box.Add(item=self.answer_panel)
self.splitter.SplitVertically(window1=self.answer_panel, window2=self.web_panel,
sashPosition=self.answer_panel_width_)
self.Sizer = wx.BoxSizer(orient=wx.VERTICAL)
self.Sizer.Add(item=self.splitter, proportion=CAN_CHANGE, flag=wx.EXPAND)
auto_answer_button = wx.Button(parent=self, label=u"????")
self.Bind(event=wx.EVT_BUTTON, handler=self.click_search_answer, source=auto_answer_button)
self.buttons_box = wx.BoxSizer(orient=wx.HORIZONTAL)
self.buttons_box.Add(item=auto_answer_button, proportion=CAN_NOT_CHANGE, flag=wx.LEFT | wx.RIGHT, border=5)
self.Sizer.Add(item=self.buttons_box, proportion=CAN_NOT_CHANGE, flag=wx.TOP | wx.BOTTOM, border=5)
menu = wx.Menu()
menu_about = menu.Append(id=wx.ID_ABOUT, text=u"&??", help=u" ?????")
menu_feedback = menu.Append(id=wx.ID_OPEN, text=u"&??", help=u" ??")
self.Bind(event=wx.EVT_MENU, handler=self.show_about, source=menu_about)
self.Bind(event=wx.EVT_MENU, handler=self.show_feedback, source=menu_feedback)
menu_bar = wx.MenuBar()
menu_bar.Append(menu, u"&??")
self.SetMenuBar(menu_bar)
self.statusbar = self.CreateStatusBar()
self.Centre()
def create_wxwindow(self):
return self.initfn(wx.SplitterWindow)(self.parent, self.id, self.pos, self.size, self.style, self.name)
def create_postorder(self):
if len(self.zchildren)!=2 or not all(isinstance(ch.w, wx.Window) for ch in self.zchildren):
raise TypeError('SplitterWindow must have exactly 2 wx.Window children')
if self.sashGravity is not None: self.w.SetSashGravity(self.sashGravity)
if self.minimumPaneSize is not None: self.w.SetMinimumPaneSize(self.minimumPaneSize)
if self.orient == wx.VERTICAL: # strange as it sounds, SplitHorizontally stacks subwindows vertically
self.w.SplitHorizontally(self.zchildren[0].w, self.zchildren[1].w)
else:
self.w.SplitVertically(self.zchildren[0].w, self.zchildren[1].w)
if self.sashPosition is not None: self.w.SetSashPosition(self.sashPosition)
def _build(self):
"""
Building widgets and setting static widget data.
"""
parent = wx.Panel(self, -1)
sizer0 = wx.BoxSizer(wx.VERTICAL)
sizer0.Add(self._buildTopBar(parent), 0, wx.ALIGN_LEFT|wx.GROW, 5)
splitter = wx.SplitterWindow(parent, -1)
#- TOP PART --------------------------------------------------------#
topParent = wx.Panel(splitter, -1)
topSizer = wx.BoxSizer(wx.VERTICAL)
self.treeCtrlItems = wx.TreeCtrl(topParent, -1,
style = wx.TR_TWIST_BUTTONS|wx.TR_LINES_AT_ROOT|wx.TR_HAS_BUTTONS|wx.TR_HIDE_ROOT|wx.TR_MULTIPLE)
topSizer.Add(self.treeCtrlItems, 1, wx.EXPAND, 5)
topParent.SetAutoLayout( True )
topParent.SetSizer(topSizer )
topSizer.Fit(topParent)
topSizer.SetSizeHints(topParent)
#-------------------------------------------------------------------#
#- BOTTOM PART -----------------------------------------------------#
bottomParent = wx.Panel(splitter,-1)
bottomSizer = wx.BoxSizer(wx.VERTICAL)
self.txtCtrlLog=wx_StdoutLog(bottomParent, -1, "",
size= wx.Size(-1, 10),
style=wx.TE_MULTILINE|wx.TE_READONLY|wx.TE_RICH)
bottomSizer.Add(self.txtCtrlLog, 1, wx.EXPAND, 5)
bottomParent.SetAutoLayout( True )
bottomParent.SetSizer(bottomSizer )
bottomSizer.Fit(bottomParent)
bottomSizer.SetSizeHints(bottomParent)
#-------------------------------------------------------------------#
splitter.SplitHorizontally(topParent,bottomParent, -100)
sizer0.Add(splitter, 1, wx.EXPAND|wx.ALIGN_CENTRE, 5)
self.buttonClose = wx.Button(parent, -1, 'Close') # buttonClose
sizer0.Add(self.buttonClose, 0, wx.ALIGN_CENTRE|wx.ALL, 5)
parent.SetAutoLayout( True )
parent.SetSizer( sizer0 )
sizer0.Fit( parent)
sizer0.SetSizeHints( parent)
def __init__(self, parent, id, title):
wx.Frame.__init__(self,parent,wx.ID_ANY, title, size=(600, 600), pos=(200, 200))
self.splitter_window = wx.SplitterWindow(self, -1, style=wx.SP_3D|wx.SP_BORDER)
self.splitter_window.SetMinimumPaneSize(20)
self.left_panel = wx.Panel(self.splitter_window, -1)
self.right_panel = wx.Panel(self.splitter_window, -1)
self.tree = CT.CustomTreeCtrl(self.left_panel, 1002, pos=(0, 0),
style=wx.TR_DEFAULT_STYLE |
wx.TR_HAS_VARIABLE_ROW_HEIGHT |
wx.TR_HAS_BUTTONS |
wx.TR_FULL_ROW_HIGHLIGHT |
wx.TR_MULTIPLE |
wx.TR_EDIT_LABELS)
self.root = self.tree.AddRoot("Root Item")
offset_lists = ["Clearance Reports", "Other Offsets"]
offset_list_combo_box = wx.ComboBox(self.right_panel, -1, choices=offset_lists)
#Sizers
offset_sizer = wx.BoxSizer(wx.VERTICAL)
offset_sizer.Add(offset_list_combo_box, 0, wx.EXPAND)
vbox = wx.BoxSizer(wx.VERTICAL)
vbox.Add(self.tree, 1, wx.EXPAND)
self.left_panel.SetSizer(vbox)
vbox2 = wx.BoxSizer(wx.VERTICAL)
vbox2.Add(offset_sizer, 1, wx.EXPAND)
self.right_panel.SetSizer(vbox2)
main_sizer = wx.BoxSizer(wx.HORIZONTAL)
self.splitter_window.SplitVertically(self.left_panel, self.right_panel)
main_sizer.Add(self.splitter_window, 1, wx.EXPAND)
self.SetSizer(main_sizer)
self.Bind(wx.EVT_TREE_END_LABEL_EDIT, self.OnEndLabelEdit)
self.Bind(wx.EVT_TREE_BEGIN_LABEL_EDIT, self.OnBeginLabelEdit)
self.Bind(wx.EVT_KEY_DOWN, self.enterpressed)
self.tree.Bind(wx.EVT_KEY_DOWN, self.enterpressed)
self.Bind(wx.EVT_KEY_DOWN, self.enterpressed, self.tree)
self.Bind(wx.EVT_COMMAND_ENTER, self.enterpressed)
self.Bind(wx.EVT_TEXT_ENTER, self.enterpressed)
self.Show(True)
def __init__(self, parent, title):
"""Create the pydicom image example's main frame window."""
wx.Frame.__init__(self, parent, id=-1, title="", pos=wx.DefaultPosition,
size=wx.Size(w=1024, h=768),
style=wx.DEFAULT_FRAME_STYLE | wx.SUNKEN_BORDER | wx.CLIP_CHILDREN)
# --------------------------------------------------------
# Set up the menubar.
# --------------------------------------------------------
self.mainmenu = wx.MenuBar()
# Make the 'File' menu.
menu = wx.Menu()
item = menu.Append(wx.ID_ANY, '&Open', 'Open file for editing')
self.Bind(wx.EVT_MENU, self.OnFileOpen, item)
item = menu.Append(wx.ID_ANY, 'E&xit', 'Exit Program')
self.Bind(wx.EVT_MENU, self.OnFileExit, item)
self.mainmenu.Append(menu, '&File')
# Attach the menu bar to the window.
self.SetMenuBar(self.mainmenu)
# --------------------------------------------------------
# Set up the main splitter window.
# --------------------------------------------------------
self.mainSplitter = wx.SplitterWindow(self, style=wx.NO_3D | wx.SP_3D)
self.mainSplitter.SetMinimumPaneSize(1)
# -------------------------------------------------------------
# Create the folderTreeView on the left.
# -------------------------------------------------------------
self.dsTreeView = wx.TreeCtrl(self.mainSplitter, style=wx.TR_LINES_AT_ROOT | wx.TR_HAS_BUTTONS)
# --------------------------------------------------------
# Create the ImageView on the right pane.
# --------------------------------------------------------
self.imView = wx.Panel(self.mainSplitter, style=wx.VSCROLL | wx.HSCROLL | wx.CLIP_CHILDREN)
self.imView.Bind(wx.EVT_PAINT, self.OnPaint)
self.imView.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
self.imView.Bind(wx.EVT_SIZE, self.OnSize)
# --------------------------------------------------------
# Install the splitter panes.
# --------------------------------------------------------
self.mainSplitter.SplitVertically(self.dsTreeView, self.imView)
self.mainSplitter.SetSashPosition(300, True)
# --------------------------------------------------------
# Initialize some values
# --------------------------------------------------------
self.dcmdsRoot = False
self.foldersRoot = False
self.loadCentered = True
self.bitmap = None
self.Show(True)
def __init__(self, parent, title):
"""Create the pydicom image example's main frame window."""
wx.Frame.__init__(self, parent, id=-1, title="", pos=wx.DefaultPosition,
size=wx.Size(w=1024, h=768),
style=wx.DEFAULT_FRAME_STYLE | wx.SUNKEN_BORDER | wx.CLIP_CHILDREN)
# --------------------------------------------------------
# Set up the menubar.
# --------------------------------------------------------
self.mainmenu = wx.MenuBar()
# Make the 'File' menu.
menu = wx.Menu()
item = menu.Append(wx.ID_ANY, '&Open', 'Open file for editing')
self.Bind(wx.EVT_MENU, self.OnFileOpen, item)
item = menu.Append(wx.ID_ANY, 'E&xit', 'Exit Program')
self.Bind(wx.EVT_MENU, self.OnFileExit, item)
self.mainmenu.Append(menu, '&File')
# Attach the menu bar to the window.
self.SetMenuBar(self.mainmenu)
# --------------------------------------------------------
# Set up the main splitter window.
# --------------------------------------------------------
self.mainSplitter = wx.SplitterWindow(self, style=wx.NO_3D | wx.SP_3D)
self.mainSplitter.SetMinimumPaneSize(1)
# -------------------------------------------------------------
# Create the folderTreeView on the left.
# -------------------------------------------------------------
self.dsTreeView = wx.TreeCtrl(self.mainSplitter, style=wx.TR_LINES_AT_ROOT | wx.TR_HAS_BUTTONS)
# --------------------------------------------------------
# Create the ImageView on the right pane.
# --------------------------------------------------------
self.imView = wx.Panel(self.mainSplitter, style=wx.VSCROLL | wx.HSCROLL | wx.CLIP_CHILDREN)
self.imView.Bind(wx.EVT_PAINT, self.OnPaint)
self.imView.Bind(wx.EVT_ERASE_BACKGROUND, self.OnEraseBackground)
self.imView.Bind(wx.EVT_SIZE, self.OnSize)
# --------------------------------------------------------
# Install the splitter panes.
# --------------------------------------------------------
self.mainSplitter.SplitVertically(self.dsTreeView, self.imView)
self.mainSplitter.SetSashPosition(300, True)
# --------------------------------------------------------
# Initialize some values
# --------------------------------------------------------
self.dcmdsRoot = False
self.foldersRoot = False
self.loadCentered = True
self.bitmap = None
self.Show(True)
def PostInit(self):
self.splitter = wx.SplitterWindow(self, -1)
self.dvc = self.create_data_view_ctrl()
self.splitter.Initialize(self.dvc)
self.splitter.SetSashPosition(400)
self.splitter.Bind(wx.EVT_SPLITTER_DOUBLECLICKED, self._OnSplitterDclick)
self.Sizer = wx.BoxSizer(wx.VERTICAL)
self.Sizer.Add(self.splitter, 1, wx.EXPAND|wx.ALL, border=10)
button_add_track = wx.Button(self, label="Add Object")
self.Bind(wx.EVT_BUTTON, self.on_add_track_object, button_add_track)
button_delete_track = wx.Button(self, label="Delete Object")
self.Bind(wx.EVT_BUTTON, self.on_delete_track_object,
button_delete_track
)
btnbox = wx.BoxSizer(wx.HORIZONTAL)
btnbox.Add(button_add_track, 0, wx.LEFT|wx.RIGHT, 5)
btnbox.Add(button_delete_track, 0, wx.LEFT|wx.RIGHT, 5)
self.Sizer.Add(btnbox, 0, wx.TOP|wx.BOTTOM, 5)
"""
UIM = UIManager()
controller = UIM.get(self._controller_uid)
model = controller._get_real_model()
lpe_ctrl_uid = UIM._getparentuid(self._controller_uid)
logplot_ctrl_uid = UIM._getparentuid(lpe_ctrl_uid)
all_tracks = UIM.list('track_controller', logplot_ctrl_uid)
for track in all_tracks:
print 'expanding:', track.uid
item = model.ObjectToItem(track)
print item
self.dvc.Expand(item)
print self.dvc.IsExpanded(item)
#model.Resort()
#print self.dvc.IsExpanded(item)
"""
#self.dvc.Bind(dv.EVT_DATAVIEW_ITEM_START_EDITING, self.OnItemStartEditing)
#self.dvc.Bind(dv.EVT_DATAVIEW_ITEM_EDITING_STARTED, self.OnItemEditingStart)
#self.dvc.Bind(dv.EVT_DATAVIEW_ITEM_EDITING_DONE, self.OnItemEditingDone)
self.dvc.Bind(dv.EVT_DATAVIEW_SELECTION_CHANGED, self.OnSelectionChanged)
###
#sizer_grid_panel = wx.BoxSizer(wx.VERTICAL)
#sizer_grid_panel.Add(self.splitter, 1, wx.EXPAND|wx.ALL, border=10)
self.SetSizer(self.Sizer)
self._get_lpeview_notebook().AddPage(self, "Objects", True)
#self.dvc.Bind(wx.EVT_IDLE, self._dvc_idle)
#def _dvc_idle(self, event):
# print 'DVC IDLE'