如何将wx.ScrolledWindow放在wx.SplitterWindow中?

时间:2010-10-05 05:57:27

标签: python wxpython

我不会想到这会如此棘手。我想要得到这样的东西:

X | X

两个X都是ScrolledWindows,最终会包含大量文本和'|'是一个划分两者的“分裂者”。我希望像大多数视觉差异一样给你一些东西。但是,我似乎无法让它发挥作用。我现在面临的一个大问题是我违反了一些断言。当我在直接向上的python中运行时,它实际上大致绘制了我期望的内容,减去了相应大小的一些细化,尽管存在约束违规。我的项目使用pybliographer,它出现在约束违规上。我做错了吗?有更简单的方法吗?

我已经包含了对splitterwindow示例代码的简单修改,以使用scrolledwindows。我首先将面板放在滚动窗口中,然后使用它来设置滚动条,如wxpython wiki中的第二个示例(http://wiki.wxpython.org/ScrolledWindows,抱歉新用户不能创建两个超链接)。< / p>

import wx

class Splitterwindow(wx.Frame):
    def __init__(self, parent, id, title):
        wx.Frame.__init__(self, parent, id, title, size=(350, 300))
        quote = '''Whether you think that you can, or that you can't, you are usually right'''
        splitter = wx.SplitterWindow(self, -1)
        scroll1 = wx.ScrolledWindow(splitter,-1)
        panel1 = wx.Panel(scroll1, -1)
        wx.StaticText(panel1, -1, quote, (100, 100), style=wx.ALIGN_CENTRE)
        panel1.SetBackgroundColour(wx.LIGHT_GREY)
        panel1.SetAutoLayout(True)
        panel1.Layout()
        panel1.Fit()
        scroll_unit = 50
        width,height = panel1.GetSizeTuple()
        scroll1.SetScrollbars(scroll_unit,scroll_unit,width/scroll_unit,height/scroll_unit)
        scroll2 = wx.ScrolledWindow(splitter,-1)
        panel2 = wx.Panel(scroll2, -1)
        wx.StaticText(panel2, -1, quote, (100, 100), style=wx.ALIGN_CENTRE)
        panel2.SetBackgroundColour(wx.WHITE)
        panel2.SetAutoLayout(True)
        panel2.Layout()
        panel2.Fit()
        scroll_unit = 50
        width,height = panel2.GetSizeTuple()
        scroll2.SetScrollbars(scroll_unit,scroll_unit,width/scroll_unit,height/scroll_unit)
        splitter.SplitVertically(scroll1, scroll2)
        self.Centre()
        self.Show(True)

app = wx.App()
tmp = Splitterwindow(None, -1, 'splitterwindow.py')
app.MainLoop()

1 个答案:

答案 0 :(得分:0)

这个例子有什么问题?对我而言,它按预期工作。