QPushButtonに画像を設定するにはどうすればよいですか?


81

私は上の画像を設定したいQPushButton、との大きさは、QPushButton画像のサイズに依存すべきです。を使用するとこれを実行できますが、を使用することはできQLabelませんQPushButton

だから、誰かが解決策を持っているなら、私を助けてください。


2
Qtのボタンに画像を設定する方法は2つあります。プログラムによる画像の設定方法、qt-articles.blogspot.com / 2010/06 /…スタイルシートからの画像の設定方法、qt-articlesです。 blogspot.com/2010/06/…–
ナルト

thatsの偉大な...それはたくさんfine..thanksに動作します...
greshiグプタ

どういたしまして:)答えが正しいと感じたら、同じような問題を抱えている他の人に役立つように、正しいとマークしてください。
ナルト

回答:


69

ピックスマップをアイコンとして使用し、このアイコンをボタンに配置することができます。

ボタンのサイズが正しいことを確認するには、ピックスマップのサイズに応じてアイコンを再表示する必要があります。

このようなものが機能するはずです:

QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());

6
私はこれが古いことを知っています、しかし私はこれをしました、そして押しボタンアイコンはまだデフォルトのものです。エラーは発生せず、すべてのリソースファイルが読み込まれているようで、パスは正常です。なぜこれがうまくいかないのですか?
mrg95 2013


10

ボタンのサイズを設定することもできます。

QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
button->setFixedSize(pixmap.rect().size());

9

次のものも使用できます。

button.setStyleSheet("qproperty-icon: url(:/path/to/images.png);");

:これは少しハッキーです。これは最後の手段としてのみ使用してください。アイコンはC++コードまたはから設定する必要がありますQt Designer


4

既存のボタンクラスのいずれにも任意のサイズの画像を設定できるとは思いません。ボタンのように動作する単純な画像が必要な場合は、次のような独自のQAbstractButtonサブクラスを作成できます。

class ImageButton : public QAbstractButton {
Q_OBJECT
public:
...
    void setPixmap( const QPixmap& pm ) { m_pixmap = pm; update(); }
    QSize sizeHint() const { return m_pixmap.size(); }
protected:
    void paintEvent( QPaintEvent* e ) {
        QPainter p( this );
        p.drawPixmap( 0, 0, m_pixmap );
    }
};

答えてくれてありがとう..QAbstractButtonの代わりにQPushButtonを使用してこのコードを実装する方法を示すことで、plzが私を助けてくれますか。私の要件はQPushButtonを使用することです。だから、plzは私を助けてくれます。
greshi Gupta 2010

私が言ったように、私は適切な方法があるとは思いません。仮にあったとしても、QStyleとスタイルシートが役立つかもしれません。そちらをご覧ください。
フランクオスターフェルト2010年

3

これは古いですが、それでも有用です。QT5.3で完全にテストされています。

注意してください、リソースパスに関する例:

私の場合、ソースディレクトリプロジェクトに「Ressources」という名前のressourcesディレクトリを作成しました。

フォルダ「ressources」には画像とアイコンが含まれています。次に、Qtにプレフィックス「Images」を追加しました。したがって、ピックスマップパスは次のようになります。

QPixmap pixmap( ":/ images / Ressources / icone_pdf.png");

JF


答えはのQPushButtonとQPixmapのを使用する方法の詳細情報を提供しなければならない
bunto1

2

これはQtDesignerで実行できます。ボタンをクリックし、アイコンプロパティに移動して、画像ファイルを選択するだけです。


状態ごとにアイコンを設定する前に、少なくとも画像で機能することを確認するために、基本の「アイコン」設定を使用してこれを行います。アイコンのサイズを画像のサイズに設定するか、少なくとも画像に十分な大きさに設定してください。そうしないと、アイコンは表示されません。
ClearCrescendo

0

このコードを使用するだけです

QPixmap pixmap("path_to_icon");
QIcon iconBack(pixmap);

注:"path_to_icon".qrcプロジェクトのファイル内の画像アイコンのパス.qrcですファイルを追加する方法はここにあります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.