1
我在框架中創建了wx.Grid小部件,並且我想在用戶使用網格小部件時更改我的光標類型。我設法用wx.StockCursor
和.SetCursor methods
這樣做,但是如果用戶將光標移動到單元格和行邊界的交點上方,我的光標會一直返回到標準光標。這是什麼造成的?wx.Grid和wx.StockCursor
import wx
import wx.grid as Gridw
class Frame(wx.Frame):
def __init__(self):
wx.Frame.__init__(self, None, wx.ID_ANY, 'Data selection', size=(785, 540))
self.Centre()
#------------------------------------------------------------------------------
panel = wx.Panel(self, wx.ID_ANY)
#------------------------------------------------------------------------------
self.grid = Gridw.Grid(panel)
self.grid.CreateGrid(250, 250)
self.grid.EnableDragGridSize(0)
self.grid.DisableDragColSize()
self.grid.DisableDragRowSize()
self.grid.SetColMinimalWidth(0, 100)
#------------------------------------------------------------------------------
sizer = wx.BoxSizer(wx.HORIZONTAL)
sizer_v = wx.BoxSizer(wx.VERTICAL)
sizer_v.Add(wx.Button(panel, -1, 'Button'), 1, wx.CENTER | wx.ALL, 5)
sizer.Add(self.grid, 1, wx.EXPAND, 5)
sizer.Add(sizer_v, 0)
panel.SetSizer(sizer)
#------------------------------------------------------------------------------
self.CreateStatusBar()
self.Show(True)
#------------------------------------------------------------------------------
cross_c = wx.StockCursor(wx.CURSOR_CROSS)
self.grid.SetCursor(cross_c)
if __name__ == '__main__':
app = wx.App()
frame = Frame().Show()
app.MainLoop()
它的行爲相同,首先光標被改變,但一旦我將它移動到單元格和行邊界的交叉點,它就會切換回普通光標。 :/ – Domagoj
好的,謝謝。我已經更新了答案,看看它是否有幫助。 – alecxe
第二種方法幾乎完美!遊標保持更改爲標準,但只要移動交叉點的鼠標,它就會切換回交叉類型。 – Domagoj