C# 如何使用GTK呈现TreeView单元格中的小部件#
我正在用Mono和Gtk开发一个应用程序。在我的应用程序中,我需要使用TreeView控件。我正在寻找一种在单元格中呈现小部件而不是绘制所有内容的方法。我有我想在这些单元格中使用的自定义小部件,我不想手动绘制它们 我已经看过文档和论坛,但还没有找到一个方法来做到这一点。我不认为这是不可能的,因为CellRenderCombo和CellRenderToggle似乎呈现了一个小部件C# 如何使用GTK呈现TreeView单元格中的小部件#,c#,mono,gtk#,C#,Mono,Gtk#,我正在用Mono和Gtk开发一个应用程序。在我的应用程序中,我需要使用TreeView控件。我正在寻找一种在单元格中呈现小部件而不是绘制所有内容的方法。我有我想在这些单元格中使用的自定义小部件,我不想手动绘制它们 我已经看过文档和论坛,但还没有找到一个方法来做到这一点。我不认为这是不可能的,因为CellRenderCombo和CellRenderToggle似乎呈现了一个小部件 谢谢如果您浏览Gtk+的源代码,您会注意到CellRenderToggle调用Gtk_paint_选项或Gtk_pai
谢谢如果您浏览Gtk+的源代码,您会注意到
CellRenderToggle
调用Gtk_paint_选项
或Gtk_paint_检查
,它们是绘制单选按钮或复选框的原语,而不是实际的小部件(我怀疑toggle/radio小部件调用相同的原语)。另一方面,CellRenderCombo
显示一个ComboBox
或ComboxBoxEntry
小部件,但这发生在StartEditing
方法覆盖中,该方法覆盖返回一个CellEditable
界面,这是ComboBox和ComboBoxEntry实现的众多接口之一。如果有人在五年的沉默后在意,这是可能的。我在这里简单地回答我自己的问题时描述了一些细节:您需要一个自定义单元渲染器,它在指向项目小部件的指针上运行(您必须手动支持该生命周期),并手动管理父tv和项目小部件之间的连接,以使绘图、信号和其他项目小部件工作。很抱歉没有样本代码-我有它原来在生锈,这是很难阅读。