0

QMLでアクセスできるようにするために、QGraphicsProxyWidgetの別のラッパークラスに埋め込まれた標準のQLineEditがあります。私のラッパークラスでは、シグナル「editingFinished」の再接続を行い、シグナルはQML環境に送られます。私の QML-Environment には、このシグナルを処理して最初にテキストを出力するスロットがあります。

LineEdit のテキストを編集して Enter キーを押すと、シグナルが送信され、スロットがこのシグナルを取得して、このメッセージを出力します。これは、信号とスロットが正しく接続されていることを示しています。しかし、テキストを編集して QML.Environment 内の別の要素をクリックすると、信号が出力されません。

この信号を発信するにはどうすればよいですか。QML のフォーカス処理にエラーはありますか? ご協力いただきありがとうございます

4

1 に答える 1

0

まあ、それはそれが言うドキュメントのように、それはQMLからの問題のように見えます

編集が終了すると、ライン編集がフォーカスを失ったか、Return / Enterが押されたために、editingFinished()信号が発行されます。

しかし、私はあまり経験がありません。しかしそれはまた言う

行編集にバリデーターが設定されている場合、returnPressed()/ editingFinished()シグナルは、バリデーターがQValidator::Acceptableを返した場合にのみ発行されることに注意してください。

于 2012-03-28T04:41:58.347 に答える