2012-02-26 3 views
1

Мне не повезло с установкой горизонтального положения элементов управления ползунком wxPythons. Во всех моих тестах установка горизонтального положения не влияет на размещение элемента управления. Может ли кто-нибудь сказать мне, что мне не хватает? БлагодаряКак разместить ползунок wxPython

Вот что я пытался:

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() 

ответ

2

Это странно. Очевидная работа заключается в том, чтобы поместить слайдер в панель, которую вы можете позиционировать (ниже), или использовать sizers. Кроме того, обратите внимание, что ошибка исчезнет, ​​если вы используете

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

+0

Спасибо вам комментировать, но проблема не является значением слайдера - тот факт, что для кортежа позиции (X, Y) значение X игнорируется. hslider1 должен быть в pos = (10,10) hslider2 pos = (100,30), но оба выровнены в крайнем левом углу окна. Вертикальный слайдер-vslider1 правильно реагирует на изменения положения X. – user1032355

+0

Я вижу. Я исправил свой ответ. Это похоже на какую-то ошибку. – tom10

+0

Еще раз спасибо за подсказку, чтобы поместить слайдер в панель его решение, но разве не странно, что горизонтальное скольжение x-позиции игнорируется, а вертикальные ползунки x используются? – user1032355

Смежные вопросы