私はそれに関連したバリと共にQComboBox
を有する:ウィジェットの値が「受け入れ可能」かどうかをチェックする方法は?
QComboBox* cb = new QComboBox;
// ...
cb->setValidator(new QDoubleValidator(0.0, 100.0, 2, this));
このウィジェットは、入力された値が変更されたときに実行されますスロット(currentTextChanged()
)に接続されています。この構成で
connect(cb, SIGNAL(currentTextChanged(QString)),
this, SLOT(onTextChanged(QString)));
バリがAcceptable
又はIntermediate
を返す場合、onTextChanged()
が実行されます。入力した値が実際に有効な場合にのみ、スロットを実行するにはどうすればよいですか(Acceptable
)。または、onTextChanged()
スロットの検証状態を確認するにはどうすればよいですか? (奇妙なことに、私はcb->validator()
はいつもnullptr
を返すように見えることに気づいた。)
"私は気付いています。 msは常にnullptr "leまたはcbを返しますか?バリデータポインタをメンバ変数に保持することもできます。 –
@FrankOsterfeld質問が修正されました。 – mimo
'QDoubleValidator'の親を' this'ではなく 'QComboBox cb'に設定してみてください。 – RedX