Hi
The slider widget with the ticks on the left side or the top side has the
focus line cutting off the slider thumb on the non pointed side. When the
ticks are on the right or bottom side the slider thumb is shown correctly.
Using wxPython 2.1.14
The code to see this bug is:
from wxPython.wx import *
···
#---------------------------------------------------------------------------
class MyFrame(wxFrame):
def __init__(self, parent, id, title):
wxFrame.__init__(self, parent, id, title,
wxPoint(100, 100), wxSize(200, 200))
panel= wxPanel(self,-1)
id=wxNewId()
self.mySlider= wxSlider(panel, id, 0, -128, 128,
wxDLG_PNT(panel, wxPoint(24, 70)),
wxDLG_SZE(panel, wxSize(10, -1)),
style = wxSL_VERTICAL| wxSL_RIGHT)
self.mySlider.SetTickFreq(64,1)
EVT_COMMAND_SCROLL(self, id, self.evtSlider)
id=wxNewId()
self.mySlider= wxSlider(panel, id, 0, -128, 128,
wxDLG_PNT(panel, wxPoint(24+10, 70)),
wxDLG_SZE(panel, wxSize(10, -1)),
style = wxSL_VERTICAL| wxSL_LEFT)
self.mySlider.SetTickFreq(64,1)
EVT_COMMAND_SCROLL(self, id, self.evtSlider)
# I have added some fits to make the outter window fit
# it leaves a margin on the right and bottom sides
panel.Fit()
self.Fit()
def evtSlider(self, event):
print event.GetPosition()
if __name__ == "__main__":
# Every wxWindows application must have a class derived from wxApp
class MyApp(wxApp):
# wxWindows calls this method to initialize the application
def OnInit(self):
# Create an instance of our customized Frame class
frame = MyFrame(NULL, -1, "This is a test")
frame.Show(true)
# Tell wxWindows that this is our main window
self.SetTopWindow(frame)
# Return a success flag
return true
app = MyApp(0) # Create an instance of the application class
app.MainLoop() # Tell it to start processing events