1

在我的 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)));

这是行不通的。你能帮我吗?我的错误是什么?

4

2 回答 2

5

clicked(bool)信号始终false用于不可检查的按钮。true除非您设置,否则它永远不会发出setCheckable(true),在这种情况下,当您选中它时它会发出truefalse当您取消选中它时它会发出。无法检查不可检查的按钮(显然),这就是信号总是发出的原因false

因此,在这种情况下,只需提供您自己的插槽,您可以在其中手动切换setDisabled(true)setDisabled(false)。或者首先使按钮可检查setCheckable(true)(在这种情况下它甚至可能更合适;只需测试一下即可。)

于 2012-10-25T13:23:02.837 回答
0

QLineEditsetDisabled根据文档没有方法

试试setReadOnly吧。

于 2012-10-25T09:58:49.240 回答