1

私のQtプロジェクトではQPushButtonQLineEditインスタンスがあります。また、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)に放出されます。チェック不可のボタンは(明らかに)チェックできません。そのため、シグナルは常に を発します。truefalsefalse

setDisabled(true)したがって、この場合は、とを手動で切り替える独自のスロットを提供するだけですsetDisabled(false)。または、最初にボタンをチェック可能にしますsetCheckable(true)(この場合は、より適しているかもしれません。テストして確認してください)。

于 2012-10-25T13:23:02.837 に答える
0

QLineEditドキュメントsetDisabledによるとメソッドがありません

setReadOnly代わりに試してください。

于 2012-10-25T09:58:49.240 に答える