isDown() 之间的区别是 Checked()
The difference between isDown() isChecked()
有什么
区别?我有代码可以使按钮既选中又向下(按下)。在同一个按钮上分别完成这些事情后,我没有注意到差异。视觉效果是相同的(它在窗口上变为蓝色,并在取消单击鼠标后保持如此)。
另外,我还有另一个关于检查按钮的问题。假设我有一个按钮,目前它不在 group1 中(它被注释掉了)并且连接到插槽,使其关闭。同一窗口中有一个文本区域,因此当我按下按钮时,它会在"选中"上更改其名称并且是蓝色的。因此,当我将光标放入文本区域以键入某些内容时,它仍然是蓝色的,已选中。但是如果我再次单击它,它会变为"未选中"但仍然是蓝色的。但是,如果在完成此操作后,我再次在文本区域中键入某些内容,则按钮是白色的,而不是向下的,并且仍然"未选中"。
所以我由此得出结论,您只需单击它即可更改按钮的状态,甚至无需在代码中使用 setChecked(真/假)?
但随之而来的是另一件事。如果我在代码中取消注释带有 group1 的两行并在 gru 中添加 button1,我突然失去了通过鼠标单击检查/取消选中按钮的能力。它一直保持"检查"状态,我想更改它的唯一方法是通过代码。为什么会这样?
Window5::Window5(QWidget * parent) :QWidget(parent)
{
QPushButton * button1=new QPushButton("button1",this);
connect(button1, SIGNAL(clicked()), this, SLOT(make_pushed()));
//QButtonGroup * group1=new QButtonGroup(); //currently not in the group
// group1->addButton(button1);
QLineEdit * line_area=new QLineEdit(this);
line_area->setGeometry(500,500,70,20);
button1->setCheckable(true);
}
void Window5::make_pushed()
{
QObject* sender = QObject::sender();
QPushButton* button = qobject_cast<QPushButton*>(sender);
button->setDown(true);
if (button->isChecked())
{
button->setText("checked");
}
else
{
button->setText("unchecked");
}
}
isDown() 和 isChecked() 之间的区别如下。当用户单击按钮进行检查时,首先按下该按钮,然后释放到选中状态。
当用户再次单击它(取消选中它)时,按钮首先移动到按下状态,然后移动到未选中状态(isChecked() 和 isDown() 都是假的)。
有关QAbstractButton官方Qt文档的更多详细信息。
相关文章:
- C++中std::resize(n)和std::shrink_to_fit之间的区别
- int(c) 和 c-'0' 之间的区别。C++
- 向量 <int> a {N, 0} 和 int arr a[N] = {0} 的时间复杂度有什么区别
- C++ - "!pointer"和"pointer == nullptr"的区别?
- C++ 使用 assign 函数的字符串与直接使用 '=' 更改值的字符串之间的区别
- std::atomic和std::condition_variable wait,notify_*方法之间的区别
- 在 .h 文件中的类中声明静态变量和在.cpp文件中声明"global"变量有什么区别
- 我是C++编程的新手,这些代码之间有什么区别,我应该使用哪一个
- 在 const 函数中通过引用和指针返回之间的区别
- 我想知道长双倍和双倍之间的区别
- 返回常量对象引用 (getter) 和仅返回字符串有什么区别?
- 返回递归调用和仅递归调用的区别
- Qt:remove() 和 rmdir() 有什么区别
- 这 4 个 lambda 表达式之间有什么区别?
- 结构体 S { int align; } 之间的区别;(struct 关键字后的名称)和 struct { int al
- (double) 和 double() 之间的区别
- 将向量作为类>(值)<向量启动和向量<类>[值]有什么区别
- typedef 枚举和枚举类有什么区别?
- &C::c 和 &(C::c) 有什么区别?
- ascii 和 unicode 在处理级别有什么区别吗?