2011-11-18 16 views
5

Tôi không chắc chắn chúng được gọi là gì, nhưng tôi muốn có một đường phân chia có thể thay đổi kích thước, để phân tách các widget.Dòng phân chia có thể thay đổi trong wxpython?

Tôi muốn một cái gì đó như thế này (trừ ngang): http://imm.io/bKgf

Nếu bạn không biết những gì tôi đang nói về xin vui lòng bình luận, cảm ơn và xin lỗi vì sự thiếu hiểu biết của tôi.

Trả lời

6

Bạn cần, có thể, một splitterwindow:

import wx 

class MyFrame(wx.Frame): 
    def __init__(self, parent): 
     wx.Frame.__init__(self, parent) 
     self.splitter = wx.SplitterWindow(self) 

     pan1 = wx.Window(self.splitter, style=wx.BORDER_SUNKEN) 
     pan1.SetBackgroundColour("yellow") 
     wx.StaticText(pan1, -1, "My Left Panel") 

     pan2 = wx.Window(self.splitter, style=wx.BORDER_SUNKEN) 
     pan2.SetBackgroundColour("orange") 
     wx.StaticText(pan2, -1, "my Right Panel") 

     self.splitter.SplitVertically(pan1, pan2, -100) 


if __name__ == '__main__': 
    app = wx.PySimpleApp() 
    frame = MyFrame(None) 
    frame.Show() 
    app.MainLoop() 

enter image description here

1

Tôi không chắc chắn nếu điều này chính xác sẽ đáp ứng nhu cầu của bạn, nhưng bạn có thể có một cái nhìn tại wxPython của aui module. Có một số mã demo trên trang đó sẽ giúp bạn bắt đầu và wxPython demo có một số ví dụ hay để thử.

1

Điều bạn muốn là wx.StaticLine. Chỉ cần tạo một trong số đó và thêm nó vào sizer của bạn với cờ phong cách EXPAND. Xem http://www.wxpython.org/docs/api/wx.StaticLine-class.html để biết thêm thông tin.

EDIT: Ồ, tôi nghĩ rằng đề xuất của Joaquin cho một SplitterWindow có thể được phát hiện. Lưu ý rằng có một vài loại khác của SplitterWindows, như MultiSplitterWindow và FourWaySplitter

Các vấn đề liên quan