2012-04-25 12 views
1

MacOS 10.6では、QSliderのデフォルトのハンドルはボールで、QSliderにティックがある場合、ハンドルはその外観(片側の矢印の形)を変えます。しかし、私はQtが提供するダニが気に入らない。ですから、qrcリソースとしてハンドルの画像を保存し、qsliderの外観をカスタマイズするためにスタイルシートを使用したいと思います。それが私が把握できる唯一の方法です。MacOS上でQSliderのハンドルをカスタマイズするためのスタイルシートの使用方法

誰でもスタイルシートを書く方法を教えてもらえますか、私はすべてが同じに保たれますが、ハンドルのみが変わることを意味します。

ところで、別の質問があります。 MacOSのデフォルトのQSliderの場合、ハンドルは溝の最も左と右の位置には届きません。どのようにスタイルシートを使って調整しますか?

答えて

2

リソース(.qrc)ファイルに必要なハンドルのイメージを追加してください。それはあなたが好きなハンドル(またはいくつかの他のプログラムを使用する)をPhotoshopに非常に簡単にする必要があります。次に、あなたのコードあなたはスライダーは、あなたが望むように配置され得るために、パディングとマージンを持つビットを試してみる必要があります

setStyleSheet("QSlider::handle {image: url(:/resources/image.png);}"); 

でこれを追加してみてください。

+0

私はハンドルの画像を設定した後、ハンドルが外に広げることができるハンドルの余白を設定することによって、 "余白"溝またはオフセットを残す。 – Royt

+0

@Roytパッディングをしてみると、そのことが分かります。 – Anthony

+0

私はWindows上で、QSlider :: handleを試しました:horizo​​ntal {background-image:url(:/ images/handle.png); }は機能しますが、 "イメージ"プロパティは動作できません。 「背景画像」プロパティを使用した場合、高さと幅は機能しません。画像が小さければ何度も塗ります。そして、私はパディング - 左とパディング - 右を試みた、彼らは効果がありません。 – Royt

2

このようなことを管理するには、QSlider全体を変更する必要があります。それ以外の場合は、デフォルトのMac OS Xペイントスタイルにフォールバックします。したがって、QSliderの境界と背景を変更し、それ自体を処理する必要があります。これを見てくださいexample

+0

ありがとう、今私はカスタマイズされた外観を有効にするために多くの属性が一緒に変更する必要があります知っている。しかし、qsliderをネイティブmacスライダのように見せるためにスタイルシートを書く方法は? – Royt

+0

さて、私はそうするためにいくつかのグラフィックスを使用します。しかし、なぜMac OS X上でスライダーのネイティブ動作を変更したいのですか? –

+0

私はスライダーのティックを自分で描画したいが、Qtが提供するダーファムのダンプは使用しないので。だから私はハンドルの開始点と終了点を知る必要があります。しかし、ネイティブのMacスライダでは、ハンドルは最も左と右の場所には届かず、QtはMac APIを使ってMacスタイルのqsliderを描画するので、オフセットがありますので、詳細を知ることはできません。スタイルシートでカスタム化してネイティブコントロールのようにしたい。 – Royt