0

私は 2 つのウィジェット (両方ともQFrames) を持っていますが、それらのいずれにも関連付けられたタイトル バーはありません (これは を通じて達成されますsetWindowFlags(Qt::FramelessWindowHint))。そのうちの 1 つはメイン ウィジェットで、もう 1 つはサイドバーのようなウィジェットで、右側の境界 (メイン ウィジェットの約 1/4 の高さ) でくっつくはずです。

QFrameメインウィジェットは上部からドラッグできるため、両方を静的な配置で透明に保つことはできません(タイトルバーがないため、 mousepress/mousemoveイベントをインターセプトしてそれに応じて移動することで手動で行います)。メイン ウィジェットのカスタム ドラッグは正常に機能しますが、サイドバーを一緒に移動しようとすると、2 つの間に非常に明白な視覚的な遅延が表示されます。メイン ウィジェットを左にドラッグしている間、2 つの間に一時的なギャップが表示されます。メインウィジェットを右にドラッグすると、2 つが一時的に重なります (サイドバーはドラッグできず、ドラッグロジックが実装されていません)。

これら 2 つのウィジェットを「接着」して、遅延なく常に一緒に移動するにはどうすればよいですか? QDockWidgetここで役立つ可能性があるかもしれませんが、その方法を理解できませんでした。ここのメイン ウィジェットはQMainWindow.

プラットフォーム - OS X Yosemite、Qt 5.3.1、32 ビット。

4

1 に答える 1