私は上の画像を設定したいQPushButton
、との大きさは、QPushButton
画像のサイズに依存すべきです。を使用するとこれを実行できますが、を使用することはできQLabel
ませんQPushButton
。
だから、誰かが解決策を持っているなら、私を助けてください。
私は上の画像を設定したいQPushButton
、との大きさは、QPushButton
画像のサイズに依存すべきです。を使用するとこれを実行できますが、を使用することはできQLabel
ませんQPushButton
。
だから、誰かが解決策を持っているなら、私を助けてください。
回答:
ピックスマップをアイコンとして使用し、このアイコンをボタンに配置することができます。
ボタンのサイズが正しいことを確認するには、ピックスマップのサイズに応じてアイコンを再表示する必要があります。
このようなものが機能するはずです:
QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
QPushButton *button = new QPushButton;
button->setIcon(QIcon(":/icons/..."));
button->setIconSize(QSize(65, 65));
既存のボタンクラスのいずれにも任意のサイズの画像を設定できるとは思いません。ボタンのように動作する単純な画像が必要な場合は、次のような独自の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 );
}
};
これは古いですが、それでも有用です。QT5.3で完全にテストされています。
注意してください、リソースパスに関する例:
私の場合、ソースディレクトリプロジェクトに「Ressources」という名前のressourcesディレクトリを作成しました。
フォルダ「ressources」には画像とアイコンが含まれています。次に、Qtにプレフィックス「Images」を追加しました。したがって、ピックスマップパスは次のようになります。
QPixmap pixmap( ":/ images / Ressources / icone_pdf.png");
JF
これはQtDesignerで実行できます。ボタンをクリックし、アイコンプロパティに移動して、画像ファイルを選択するだけです。