我有2个复选框。当我检查另一个时我想取消选中,反之亦然。所以,总是,我只会检查一个而另一个未经检查。我现在拥有的是当我检查一个时,另一个是未经检查的(好的)。现在,当我转到未经检查并检查它时,在第一次单击时都会取消选中。这是我的例子:
def CB1Function():
CB2.setChecked(0)
CB1.stateChanged.connect(CB1Function)
def CB2Function():
CB1.setChecked(0)
CB2.stateChanged.connect(CB2Function)
换句话说,例如,我有3个选项,有3个复选框,我应该一次只选择一个选项。
由于
答案 0 :(得分:3)
这可能是一个愚蠢的答案,但为什么不使用radiobuttons?
单选按钮或选项按钮是一种图形用户界面元素,允许用户只选择一组预定义的选项。
答案 1 :(得分:1)
听起来像是一个无人机。但如果你坚持使用复选框,请尝试这样的事情:
private void checkBox1_CheckedChanged(object sender, EventArgs e)
{
checkBox2.Checked = !checkBox1.Checked;
}
private void checkBox2_CheckedChanged(object sender, EventArgs e)
{
checkBox1.Checked = !checkBox2.Checked;
}
编辑:如果你有两个以上的复选框(甚至有两个)你可以创建一个循环遍历所有复选框并更改它们的过程,类似于(伪代码):
private void CheckAllCheckboxes(checkbox ACheckbox) //ACheckbox is the checkbox just clicked
{
bool JustChecked = ACheckbox.checked; //did you enable or disable ACheckbox?
for (int i = 0; i <= AllCheckBoxes.count; i++)
{
if (AllCheckboxes[i] != ACheckbox) //every checkbox except the one just checked...
{
AllCheckBoxes[i].checked = !JustChecked //set the opposite
}
}
}