Qt连接信号和插槽

Kol*_*nya 1 signals qt4 disabled-control disabled-input slots

在我的Qt项目中,我有一个QPushButton和一个QLineEdit实例.我想在按下QPushButton时禁用QLineEdit.

我写了这段代码:

this->btn = new QPushButton(this);
this->txt = new QLineEdit(this);
QObject::connect(this->btn,SIGNAL(clicked(bool)),this->txt,SLOT(setDisabled(bool)));
Run Code Online (Sandbox Code Playgroud)

这不起作用.你能帮我吗?我的错是什么?

Nik*_* C. 5

clicked(bool)信号始终false为不能选中按钮.它将永远不会发出,true除非您设置setCheckable(true),在这种情况下,它会true在您检查时以及false取消选中时发出.无法检查不可检查的按钮(显然),这就是信号始终发出的原因false.

所以在这种情况下,只需提供自己的插槽,可以手动切换setDisabled(true)setDisabled(false).或者首先使按钮可以检查setCheckable(true)(在这种情况下甚至可能更合适;只需测试并查看.)