WxGo网格单元渲染器

我显然缺少对Go或Wx小部件的基本了解。</ p>

< p>我正在尝试创建第一列中带有复选框的基本表。</ p>

  table:= wx.NewGrid(w,wx.ID_ANY)
table.CreateGrid (4,2)
table.SetCellEditor(0,0,wx.SwigIsGridCellBoolRenderer {})
</ code> </ pre>

该代码给了我这个错误:</ p>

 复合文字的无效类型:wx.SwigIsGridCellBoolRenderer 
</ code> </ pre>

我知道我也必须设置编辑器。 但是我还没走那么远。 答案越详细,越好。 谢谢!</ p>
</ div>

展开原文

原文

I'm obviously missing some basic understanding of either Go or Wx Widgets.

I'm trying to create a very basic table with checkboxes in the first column.

table := wx.NewGrid(w, wx.ID_ANY)
table.CreateGrid(4, 2)
table.SetCellEditor(0, 0, wx.SwigIsGridCellBoolRenderer{})

That code gives me this error:

invalid type for composite literal: wx.SwigIsGridCellBoolRenderer

I know I also have to set the editor. But I'm not even that far. The more detailed the answer, the better. Thank you!

1个回答



错误提示您使用的是复合文字,可用于创建它们的strut,slice,array,map或派生值。</ p>

此:</ p> \ n

  wx.SwigIsGridCellBoolRenderer {} 
</ code> </ pre>

将是类型为 wx.SwigIsGridCellBoolRenderer </空>的空复合文字 ,但该类型与您可以在复合文字中使用的类型有所不同。 它是接口类型:</ p>

  type SwigIsGridCellBoolRenderer接口{
SwigGetGridCellBoolRenderer()GridCellBoolRenderer
}
</ code> </ pre>

wx.NewGrid()</ code>返回类型为 wx.Grid </ code>的类型,该类型是具有方法的接口:</ p>

  SetCellEditor(  arg2 int,arg3 int,arg4 SwigIsGridCellEditor)
</ code> </ pre>

因此您必须向其传递一个满足/实现 wx.SwigIsGridCellEditor </ code>的值 界面。</ p>

此界面只有一个方法:</ p>

  type SwigIsGridCellEditor接口{
SwigGetGridCellEditor()GridCellEditor
}
< / code> </ pre>

因此,任何具有此类 SwigGetGridCellEditor()</ code>方法的类型都可以在此处使用。 这类类型是:</ p>


  • wx.SwigClassGridCellTextEditor </ code> </ li>
  • wx.SwigClassGridCellAutoWrapStringEditor </ code> < /li>
  • wx.SwigClassGridCellBoolEditor

  • wx.SwigClassGridCellChoiceEditor

  • wx .SwigClassGridCellEnumEditor </ code> </ li>
  • 等。</ li>
    </ ul>

    因此,请创建上述实例之一,您可以将其传递给< code> table.SetCellEditor()</ code>。</ p>

    例如:</ p>

      editor:= wx.NewGridCellTextEditor()
    table .SetCellEditor(0,0,editor)
    </ code> </ pre>
    </ div>

展开原文

原文

The error hints you are using a composite literal, which can be used to create values of struts, slices, arrays, maps or derivatives of these.

This:

wx.SwigIsGridCellBoolRenderer{}

Would be an empty composite literal of the type wx.SwigIsGridCellBoolRenderer, but that type is nether of the types you may use with a composite literal. It is an interface type:

type SwigIsGridCellBoolRenderer interface {
    SwigGetGridCellBoolRenderer() GridCellBoolRenderer
}

wx.NewGrid() returns a type of wx.Grid which is an interface with a method:

SetCellEditor(arg2 int, arg3 int, arg4 SwigIsGridCellEditor)

So you have to pass a value to it that satisfies / implements the wx.SwigIsGridCellEditor interface.

This interface has a single method:

type SwigIsGridCellEditor interface {
    SwigGetGridCellEditor() GridCellEditor
}

So any type that has such SwigGetGridCellEditor() method may be used here. Such types are:

  • wx.SwigClassGridCellTextEditor
  • wx.SwigClassGridCellAutoWrapStringEditor
  • wx.SwigClassGridCellBoolEditor
  • wx.SwigClassGridCellChoiceEditor
  • wx.SwigClassGridCellEnumEditor
  • etc.

So create an instance of one of the above, that you can pass to table.SetCellEditor().

For example:

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

doumie7914
doumie7914 对不起,以为我做了。
2 年多之前 回复
douqin6785
douqin6785 我很高兴。 然后,您应该接受并认可答案。
2 年多之前 回复
douhang8991
douhang8991 这很棒。
2 年多之前 回复
dongshi3361
dongshi3361 感谢您的详细回复。 我正在重建我的工作站。 下周初我会测试!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐