WxGo网格单元渲染器

WxGo网格单元渲染器,go,wxwidgets,wxgo,Go,Wxwidgets,Wxgo,我显然对Go或Wx小部件缺乏一些基本的了解 我试图创建一个非常基本的表,在第一列中带有复选框 table := wx.NewGrid(w, wx.ID_ANY) table.CreateGrid(4, 2) table.SetCellEditor(0, 0, wx.SwigIsGridCellBoolRenderer{}) 该代码给了我以下错误: invalid type for composite literal: wx.SwigIsGridCellBoolRenderer 我知道我还必须

我显然对Go或Wx小部件缺乏一些基本的了解

我试图创建一个非常基本的表,在第一列中带有复选框

table := wx.NewGrid(w, wx.ID_ANY)
table.CreateGrid(4, 2)
table.SetCellEditor(0, 0, wx.SwigIsGridCellBoolRenderer{})
该代码给了我以下错误:

invalid type for composite literal: wx.SwigIsGridCellBoolRenderer

我知道我还必须设置编辑器。但我还没走那么远。答案越详细越好。谢谢大家!

您正在使用的错误提示,可用于创建struts、Slice、Array、Map或其衍生物的值

这:

将是类型为
wx.SwigIsGridCellBoolRenderer
的空复合文字,但该类型不是可用于复合文字的类型。它是一种接口类型:

type SwigIsGridCellBoolRenderer interface {
    SwigGetGridCellBoolRenderer() GridCellBoolRenderer
}
wx.NewGrid()
返回一种类型的
wx.Grid
,它是一个具有以下方法的接口:

SetCellEditor(arg2 int, arg3 int, arg4 SwigIsGridCellEditor)
因此,您必须向它传递一个满足/实现
wx.SwigIsGridCellEditor
接口的值

此接口有一个方法:

type SwigIsGridCellEditor interface {
    SwigGetGridCellEditor() GridCellEditor
}
因此,这里可以使用具有此类
SwigGetGridCellEditor()
方法的任何类型。这些类型包括:

  • wx.SwigClassGridCellTextEditor
  • wx.SwigClassGridCellAutoWrapStringEditor
  • wx.SwigClassGridCellBoolEditor
  • wx.SwigClassGridCellChoiceEditor
  • wx.SwigClassGridCellEnumEditor
  • 等等
因此,创建上面其中一个的实例,您可以将其传递到
table.SetCellEditor()

例如:

editor := wx.NewGridCellTextEditor()
table.SetCellEditor(0, 0, editor)

谢谢你的详细回复。我现在正在重建我的工作站。我下星期初就要考试了@我很高兴。那么你应该接受并投票表决答案。对不起,我想是的。
editor := wx.NewGridCellTextEditor()
table.SetCellEditor(0, 0, editor)