如何防止单选按钮的自动选择

O. *_*per 7 gtk# radio-button

将Gtk#RadioButton的实例添加到GUI时,会自动检查("激活")其单选按钮组的第一个成员.

对于Gtk,这在一定程度上已经在另一个问题中进行了讨论,所选答案的要点是用户希望始终选择一个单选按钮.

我不反对.

但是,我会以某种方式自动生成用户界面,因此每个单选按钮都链接到数据模型,但是没有一个单选按钮可以随时获取对任何其他RadioButton实例的引用.数据模型确保始终检查一个单选按钮.

除了足以满足用户期望之外,我认为这是一个好的做法,就像这样,数据完整性由数据模型确保,而不是由GUI确保.

不幸的是,Gtk#会自动检查这样的所有单选按钮,因为它认为每个单选按钮是其组中的第一个.为了将各种单选按钮添加到同一组,我必须将组中的第一个单选按钮传递给其他单选按钮的构造函数 - 我不能,如上所述,因为我没有任何方法可以获得实例化其他时对第一个单选按钮的引用.

设置单选按钮的Active属性false没有帮助,也没有调用该Toggle方法.

有没有办法抑制这种自动选择,可能是通过子类化和覆盖我还找不到的东西?或者,CheckButton为了这个目的,是否有可能强制a 看起来像一个单选按钮?

如果真的没有其他解决方案,我会尝试实现另一个答案中建议的解决方案,其中包括为我的每个单选按钮添加第二个隐藏的单选按钮,但我会发现对于生产代码非常hacky.

Aco*_*gua 1

Josip 解决方案的扩展:创建您自己的单选按钮小部件,实际上只包含两个 gtk 单选按钮,其中之一始终是隐藏的。然后你的工厂会创建这个按钮而不是原来的 gtk 按钮......