2

QPushButton または QToolButton の外観を、elementaryos の Web ページの「ボタン」のようにカスタマイズするにはどうすればよいですか?

ボタン画像

私が本当に欲しいのは、特徴的な画像の位置とその横のテキストだけです。運が良ければ、そのような境界線も取得できるかもしれませんが、タイトルの下の小さな説明は本当に必要ありません:)できますかまたは、QPushButton/QAbstractButton/そのようなものをサブクラス化する必要がありますか? 私はすでにどこでも検索しましたが、固定された場所に何かをペイントするなどのものがなければ、そのレベルのカスタマイズは見つかりませんでした。これはまさに私が望んでいないことです.

編集:固定画像ではなく、カスタマイズ可能なボタンを取得するソリューションが本当に欲しい

MainWindowButton(QString(title), /*opt*/QString(description), QImage(icon));
4

2 に答える 2

1

うまくいくかもしれないいくつかのアプローチがあります。

最初に、が付いた法線を使用してソリューションを作成することを検討QPushButtonQVBoxLayoutてください。3つ追加できQLabelsます。1つはタイトルテキスト用、もう1つはキャプションテキスト用、もう1つは画像用です。一部のCSSを使用して、ボタンの背景画像を上下にレンダリングし、さらに多くのCSSを使用して、2つのラベルのテキストのスタイルを設定し、画像を3番目のラベルに配置できますが、ラベルが下にシフトしない場合があります。ボタンがクリックされます。

最良の解決策は直接塗装だと思います。これを行うには、をサブクラス化し、QWidgetをオーバーライドしますpaintEvent()。アップ状態の場合はすべてをレンダリングし、ダウン状態の場合はすべてを少し上下にシフトします。

QImageこれは、アップ状態とダウン状態をにレンダリングし、 CSSを使用してそれらを使用してQPushbuttonをスタイリングすることにより、サブクラス化せずに実現できます。

これらのアプローチの組み合わせもいくつかあります。

于 2012-12-01T02:03:05.073 に答える
1

下の境界線がアイコンと同じ高さで、上、左、右の境界線の幅が 0 ピクセルである border-image スタイルシート プロパティをクリエイティブに使用して、右隅のアイコンで背景を白に設定できます。基本的にアイコンのように見えるカスタム画像を作成する必要があります。これは、左と上に数ピクセルの幅があり、白です。

http://doc.qt.digia.com/qq/qq20-qss.html#theboxmodel

paintEvent をオーバーライドする必要があるテキスト。

于 2012-12-01T01:48:46.983 に答える