如何定位wxPython滑块控件

时间:2012-02-26 16:10:56

标签: wxpython slider

我没有运气设置wxPythons滑块控件的水平位置。在我的所有测试中,设置水平位置对控件的放置没有影响。 任何人都可以告诉我我错过了什么吗? 感谢

这是我尝试过的:

    import wx 

    class SliderFrame(wx.Frame):
        def __init__(self):
            wx.Frame.__init__(self, None, -1, 'Slider Example', size=(400, 600))
            panel = wx.Panel(self, -1)
            self.count = 0
            hslider1 = wx.Slider(panel, 100, 25, 1, 100, pos=(10, 10),
                    size=(250, -1),
                    style=wx.SL_HORIZONTAL | wx.SL_AUTOTICKS | wx.SL_LABELS )
            hslider1.SetTickFreq(5, 1)

            hslider2 = wx.Slider(panel, 100, 25, 1, 100, pos=(100, 330),
                    size=(250, -1),
                    style=wx.SL_HORIZONTAL | wx.SL_AUTOTICKS | wx.SL_LABELS )
            hslider2.SetTickFreq(5, 1)


            vslider1 = wx.Slider(panel, 100, 25, 1, 100, pos=(15, 70),
                    size=(-1, 250),
                    style=wx.SL_VERTICAL | wx.SL_AUTOTICKS | wx.SL_LABELS )
            vslider1.SetTickFreq(20, 1)



    app = wx.PySimpleApp()
    frame = SliderFrame()
    frame.Show()
    app.MainLoop()

1 个答案:

答案 0 :(得分:2)

这很奇怪。一个明显的解决方法是将滑块放在可以放置(下方)的面板中,或者使用sizer。另请注意,如果使用

,则错误消失
    p2 = wx.Panel(panel, -1, size=(250, 100), pos=(100,330))
    hslider2 = wx.Slider(p2, -1, 27, 0, 100,
            size=(250, -1),
            style=wx.SL_HORIZONTAL | wx.SL_AUTOTICKS | wx.SL_LABELS )
    hslider2.SetTickFreq(5, 1)

它也可以使用SetDimensions,如下所示:

    hslider2 = wx.Slider(panel, -1, 27, 0, 100,
            style=wx.SL_HORIZONTAL | wx.SL_AUTOTICKS | wx.SL_LABELS )
    hslider2.SetTickFreq(5, 1)
    hslider2.SetDimensions(100, 330, 250, -1)

enter image description here