2011-09-14 11 views
0

私はスクロールバーのハンドルのイメージを使用する私のテーブルにスタイルQScrollBarを持っています。ハンドルは、エッジで丸められています(もちろん、エッジの周りの画像は透明です)。今問題は、サイズをうまく再現できないようです。私のスタイルシートでQScrollBarのハンドルはどのようにスタイル付けされ、スケーラブルになりますか?

background-image: url(:/res/img/scrollbar-vhandle.png); 
background-repeat: repeat-y; 

: それは、垂直スクロールバーですので、唯一の方法は、私がこれまでに機能することがわかっ設定することです。それはどんなことになっているのですか?スクロールバーだけが醜く見えます。特に、丸みを帯びたコーナーが原因です。

イメージは、y-centerから1pxのハイラインを繰り返すことでうまく伸ばすことができます。しかし、yストレッチもOKであるはずです。私はそれをする良い方法を見つけることができません。 QPushButtonのようなものです.1つのボタンに9つの画像を使用して拡大縮小することはできますが、残念ながらそうではありません。

だから、誰かが私にスタイルシートを通して(またはQScrollBarから派生し、ハンドルを再描画する)方法を教えてもらえれば、とても感謝しています。

さらに詳しい情報が必要な場合は、私にお知らせください。

答えて

0

あなたが言うように、スクロールバーから継承し、paintEvent関数をオーバーロードすることができます。そこでは、あなたが望むものを何でも好きにすることができます。たとえば、その1行を繰り返してペイントして新しいピックスマップを計算します。実際にQPixmapには、これを比較的容易にするための2つの関数があります。

+0

私はそれを認識しています。しかし、問題は.. QScrollBar全体ではなく、ハンドルだけをペイントする方法ですか? – Amy

+1

えええええええええええええええええええええええええええんを使用してみることはできますが、スクロールバーのハンドルのスタイルを変更したいと思っているのであれば、それは残念です。 – arne

+0

使用されているQStyleの派生形を作成し、スクロールバーハンドルをペイントする関数だけをオーバーライドすることができます。その難しさは、どちらが使用されているか、そしてそれがプラットフォームによって変わる可能性があるという事実を理解することになります。別のオプションはスタイルプロキシです。 –

関連する問題