0

QPlainTextEditに基づいて次の機能を実装しようとしています。デフォルトでは、「ここに何かを入力してください」というメッセージが表示されます。クリックすると、消えて編集できるようになります。

そのためには、ウィジェットがクリックされたかどうかをインターセプトする必要があります。QPlainTextEditをサブクラス化せずにこれを行うことはできますか?

親のウィジェットonMousePressEventは、イベントが属する子のウィジェットを取得できますか?

4

1 に答える 1

1

QPlainTextEditをサブクラス化せずにこれを行うことはできますか?

はい、イベントフィルターを実装できます。

http://qt-project.org/doc/qt-4.8/eventsandfilters.html#event-filters

基本的に、プレーンテキスト編集用のマウスイベントを除外できます。フィルタでマウスプレスイベントが発生するたびに、プレーンテキスト編集の内容をクリアできます。

親のウィジェットonMousePressEventは、イベントが属する子のウィジェットを取得できますか?

イベントフィルタリングなしではありません。Qtのイベント伝播システムは、最初に子ウィジェットにイベントを送信し、次に子ウィジェットがイベントを受け入れない場合にのみ親ウィジェットにイベントを送信します。

于 2012-10-06T00:12:55.517 に答える