我没有运气设置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()
答案 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)