wxpython设计GUI:grid控件中怎么实现点击单元格字体打开相应的链接窗口

使用wxpython设计GUI界面,需要实现通过鼠标点击grid表格中第一列单元格显示的单号能够自动跳出该单号的信息编辑界面。

百度了好多篇文章,思路来源主要参考以下几篇文章:

wxPython做GUI:如何在Grid中响应鼠标移动事件

在wx.grid中鼠标悬停在单元格上时的工具提示消息

如何在wxpython中的wx.grid中右键单击以获取选定范围的值?

wxPython in Action ( 网格(grid)控件7)

wxpython设计GUI:grid控件中怎么实现点击单元格字体打开相应的链接窗口

代码实现:

 # 控制点击单号触发打开相应的单号编辑窗口事件
        self.Bind(wx.grid.EVT_GRID_CELL_LEFT_DCLICK, self.OnSelectCell, self.m_grid1)

    def OnSelectCell(self, event):
        row = event.GetRow()
        column = event.GetCol()
        if column == 0:
            self.m_grid1.SetCellEditor(row, 0, wx.grid.GridCellEditor.GetWindow(self.UpdateUI(4)))
        event.Skip()

思路讲解:

创建针对grid单元格的双击鼠标左键触发事件函数OnSelectCell(),并且限制鼠标双击事件的单元格对象只能是grid的第一列,主要使用了grid的SetCellEditor方法实现选中单元格之后打开对应的另外一个界面。
wxpython设计GUI:grid控件中怎么实现点击单元格字体打开相应的链接窗口

https://docs.wxpython.org/wx.grid.GridCellEditor.html#wx.grid.GridCellEditor
wxpython设计GUI:grid控件中怎么实现点击单元格字体打开相应的链接窗口

wxpython设计GUI:grid控件中怎么实现点击单元格字体打开相应的链接窗口
虽然会提示如下报错信息,但是功能是ok的,能够实现鼠标左键双击单号打开相应的编辑界面,报错信息如下:self.m_grid1.SetCellEditor(row, 0, wx.grid.GridCellEditor.GetWindow(self.UpdateUI(4)))
TypeError: GridCellEditor.GetWindow(): first argument of unbound method must have type ‘GridCellEditor’

实现在不同的界面之间跳转主要参考以下文章的代码逻辑:wxPython实现Frame之间的跳转/更新的一种方法

主要参考文章中的guiManager.py设置GuiManager类来管理不同的界面,通过设置type来确定跳转到哪个界面。
wxpython设计GUI:grid控件中怎么实现点击单元格字体打开相应的链接窗口

上一篇:感知机、支持向量机、神经网络的关系


下一篇:python使用梯度下降拟合直线