isDown()之间的区别isChecked()

时间:2016-04-23 20:08:48

标签: c++ qt

区别是什么?我有代码,使按钮既检查又向下(推)。在同一个按钮上单独完成这些事情我没有注意到差异。视觉效果是相同的(它在窗口上变成蓝色,并且在未单击鼠标后保持这样)。

另外,我还有另一个关于检查按钮的问题。假设我有一个按钮,此刻它不在group1中(它已被注释掉)并连接到SLOT,这使得它被击落。在同一个窗口中有一个文本区域,因此当我按下按钮时,它会更改它的名称"选中"而且是蓝色的。因此,当我将光标放入文本区域进行输入时,它仍然是蓝色的,检查过。但如果我再次点击它,它就会变成“未选中”#34;但仍然是蓝色的。但是,如果在完成之后我再次在我的文本区域输入内容,则按钮为白色,而不是向下,仍然未经检查"。

所以我从这里得出结论,只需点击它就可以改变按钮的状态,甚至不用代码中的setChecked(true / false)?

但接下来是另一回事。如果我在代码中使用group1取消注释两行并在组中添加button1,我突然失去了通过鼠标单击检查/取消选中按钮的功能。它保持"检查"所有的时间,我想改变它的唯一方法是通过代码。为什么会这样?

$ for k in "${!arr[@]}";do v="${arr[$k]}"; printf '%s %s\n' "$v" "$k";done
1 static
3 return
2 switch
1 int
6 char
2 CHAR
1 COLS
1 main
1 double
1 case
1 long
1 year

}

1 个答案:

答案 0 :(得分:2)

isDown()和isChecked()之间的区别如下。当用户单击按钮进行检查时,首先按下按钮然后释放到检查状态。

当用户再次点击它(取消选中)时,按钮首先移动到按下状态,然后移动到未选中状态(isChecked()和isDown()都是假的。)

有关official Qt documentation of QAbstractButton的更多详情。