如何防止自动选择单选按钮
How to prevent auto-selection of radio buttons
将 Gtk# RadioButton
class 的实例添加到 GUI 时,会自动将其选中 ("activated") 作为其单选按钮组的第一个成员。
对于 Gtk,这在某种程度上已经被讨论 in another question, with the main point of the selected answer 因为 用户希望始终选择一个单选按钮.
我对此没有异议。
但是,我以某种方式自动生成我的用户界面,因此每个单选按钮都链接到一个数据模型,但是 none 个单选按钮可以随时获取对任何其他 RadioButton
个实例的引用 。数据模型确保始终选中一个单选按钮。
除了足以满足用户期望之外,我认为这是一个很好的做法,就像这样,数据完整性是由数据模型而不是 GUI 确保的。
不幸的是,Gtk# 会像这样自动检查 all 个单选按钮,因为它认为每个单选按钮都是其组中的第一个。为了将各种单选按钮添加到同一组,我必须将组中的第一个单选按钮传递给其他单选按钮的构造函数 - 正如上面指出的那样,我不能这样做,因为我没有任何方法可以得到实例化其他单选按钮时对第一个单选按钮的引用。
设置 Active
property of the radio button to false
does not help, nor does invoking the Toggle
method.
有没有什么方法可以抑制这种自动选择,可能是通过子类化和覆盖我还找不到的东西?或者,是否有可能为此目的强制 CheckButton
看起来像单选按钮?
如果真的没有其他解决方案,我将尝试实施 another answer 中建议的解决方案,该解决方案涉及为我的每个单选按钮添加第二个隐藏的单选按钮,但我会发现对于生产代码。
单选按钮类似于复选按钮,只是它们被分组,因此一次只能有一个 selected/depressed。
他们需要一个团队来正确地履行他们的职责。
尝试从下开始的解决方案,它不是那么 hacky,只需尝试添加一个始终被选中的隐藏单选按钮即可。
Josip 解决方案的扩展:创建您自己的单选按钮小部件,实际上只包含两个 gtk 单选按钮,其中一个总是隐藏的。然后你的工厂创建这个而不是原来的 gtk 按钮...
将 Gtk# RadioButton
class 的实例添加到 GUI 时,会自动将其选中 ("activated") 作为其单选按钮组的第一个成员。
对于 Gtk,这在某种程度上已经被讨论 in another question, with the main point of the selected answer 因为 用户希望始终选择一个单选按钮.
我对此没有异议。
但是,我以某种方式自动生成我的用户界面,因此每个单选按钮都链接到一个数据模型,但是 none 个单选按钮可以随时获取对任何其他 RadioButton
个实例的引用 。数据模型确保始终选中一个单选按钮。
除了足以满足用户期望之外,我认为这是一个很好的做法,就像这样,数据完整性是由数据模型而不是 GUI 确保的。
不幸的是,Gtk# 会像这样自动检查 all 个单选按钮,因为它认为每个单选按钮都是其组中的第一个。为了将各种单选按钮添加到同一组,我必须将组中的第一个单选按钮传递给其他单选按钮的构造函数 - 正如上面指出的那样,我不能这样做,因为我没有任何方法可以得到实例化其他单选按钮时对第一个单选按钮的引用。
设置 Active
property of the radio button to false
does not help, nor does invoking the Toggle
method.
有没有什么方法可以抑制这种自动选择,可能是通过子类化和覆盖我还找不到的东西?或者,是否有可能为此目的强制 CheckButton
看起来像单选按钮?
如果真的没有其他解决方案,我将尝试实施 another answer 中建议的解决方案,该解决方案涉及为我的每个单选按钮添加第二个隐藏的单选按钮,但我会发现对于生产代码。
单选按钮类似于复选按钮,只是它们被分组,因此一次只能有一个 selected/depressed。
他们需要一个团队来正确地履行他们的职责。
尝试从下开始的解决方案,它不是那么 hacky,只需尝试添加一个始终被选中的隐藏单选按钮即可。
Josip 解决方案的扩展:创建您自己的单选按钮小部件,实际上只包含两个 gtk 单选按钮,其中一个总是隐藏的。然后你的工厂创建这个而不是原来的 gtk 按钮...