在我的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)));
哪个不起作用。 你能帮我吗?我的错是什么?
答案 0 :(得分:5)
对于不可检查的按钮,clicked(bool)
信号始终为false
。它永远不会发出true
,除非您设置setCheckable(true)
,在这种情况下,它会在您检查时发出true
,并在您取消选中时发出false
。无法检查不可检查的按钮(显然),这就是信号始终发出false
的原因。
因此,在这种情况下,只需提供自己的插槽,即可在setDisabled(true)
和setDisabled(false)
之间手动切换。或者首先使用setCheckable(true)
使按钮可以检查(在这种情况下甚至可能更合适;只需测试并查看。)
答案 1 :(得分:0)
QLineEdit
没有方法setDisabled
请尝试使用setReadOnly
。