2

補完の提案のために、QPlainTextEdit 内の子として QListWidget を取得しました。

候補リストがカーソルの下に表示され、行がほぼいっぱいになると、リスト ウィジェットの一部がテキスト編集の境界線によってトリミングされます。親ウィジェット領域の外に子ウィジェットを強制的に表示する可能性はありますか?

私が持っているアイデアは、テキストとリストの編集要素を「兄弟」にすることです。つまり、それらを同じ親に追加します。ただし、これにはイベント処理メカニズムが必要です (これら 2 つの要素間の親子関係を想定しているため)。

Katepartコンポーネントを研究し、KateViewの直接の子であるKateCompletionWidget(提案を表示)があり、それを実行すると(Kateテキストエディターなど)、リストがテキスト編集境界を越えて表示されるため、これを達成する方法があるに違いないと思います.

4

2 に答える 2

1

残念ながら、子供が親のQWidgetrectの外でペイントする方法はありません。あなたの兄弟のアプローチは、この問題に対する一般的な解決策です。もう1つのアプローチは、子が描画したいものを親に通知することですが、ペイントイベントを再実装する必要があるため、これはもう少し高度な場合があります。

于 2012-04-23T18:38:53.483 に答える
0

今日、私はおそらく実行可能な方法を見つけました-それsetWindowFlags(Qt::ToolTip)はQListWidget要素のメソッドに基づいています。ただし、位置付けとイベント処理に若干の変更があります。

于 2012-04-24T08:11:04.343 に答える