2011-09-08 12 views
1

私のqt guiで簡単な効果を作りたいと思いますが、これを達成する方法はわかりません。マウスが上に移動するにつれてqtウィジェットを大きく描画する(ウィジェットのオーバーラップ)

私はqwidgetのサブクラスとして実装したウィジェットをいくつか持っています。これらは別のウィジェットの一部であり、レイアウト内に存在します。マウスがこれらのウィジェットの上を移動するとき、私はそれらを大きく見せて、選択したウィジェットを強調表示したい。

これは私がすでに試したものです。 ペイントイベントをオーバーライドし、単にそれを大きく塗ります。しかし、同じレイアウトに住んでいる他のウィジェットは、大きめの領域を塗りつぶします。

また、親ウィンドウから「手で」塗装機能を呼び出して、塗装順序を制御しようとしました。しかし、それはいずれも助けませんでした。

私はこのQtの効果を達成する可能性があると思いますが、私は単に方法を知らないのです。 アイデア

+0

私は「大きな絵を描く」とは考えていませんが、それをするときにウィジェットを作成してみましたか? – Mat

+0

しかし、私は本当に大きなウィジェットにしたいです。残念ながら 'raise()'はウィジェットが他のウィジェットによってオーバーペイントされるのを防ぎません。これが助けてくれれば:私は、ソリューションエクスプローラのような、ビジュアルスタジオのような自動隠しパーツと同様の効果を持ちたいと思う。 – Valerie

+0

それから、 'resize()'でそれを大きくしてください。しかし、おそらくあなたのレイアウトを台無しにするでしょう。スペーサーを使って動作させることができます。私は知らないし、マウスの下を動くものが好きではない。色/ハイライトの変更は問題ありません。 – Mat

答えて

0

あなたは可能性があり、次のいずれか

  • QMLを使用QGraphicsWidget秒で、QGraphicsView内のあなたのGUIを作成して、マウスが入ったときにsetScaleを使用するか、ウィジェットを残す、または
関連する問題