QPushButton에 이미지를 설정하는 방법은 무엇입니까?


81

나는 이미지에 설정하려는 QPushButton, 그리고 크기는 QPushButton이미지의 크기에 의존한다. 을 사용할 때이 작업을 수행 할 수 QLabel있지만 QPushButton.

그래서 누군가가 해결책을 가지고 있다면 저를 도와주세요.


2
당신은 Qt는, 설정 이미지의 프로그래밍 방식의 버튼에 이미지를 설정할 수있는 사용하는 두 가지 방법이 있습니다 qt-articles.blogspot.com/2010/06/... 이미지가 세트되고있는 방법 스타일 시트에서 QT-기사. blogspot.com/2010/06/…
Naruto

그게 좋은 ... 그것은 ... 많이 fine..thanks 작동
greshi 굽타

천만에요 :) 답이 옳다고 생각한다면, 비슷한 문제를 겪는 다른 사람들에게 도움이 될 수 있도록 정답으로 표시 해주세요.
Naruto

답변:


69

할 수있는 일은 픽스맵을 아이콘으로 사용한 다음이 아이콘을 버튼에 놓는 것입니다.

버튼의 크기가 올바른지 확인하려면 픽스맵 크기에 따라 아이콘을 다시 만들어야합니다.

다음과 같이 작동합니다.

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

6
나는 이것이 오래되었다는 것을 알고 있지만 이것을 수행했으며 푸시 버튼 아이콘은 여전히 ​​기본 아이콘입니다. 오류가 발생하지 않고 모든 리소스 파일이로드 된 것 같고 경로가 좋습니다. 이것이 저에게 효과가없는 이유는 무엇입니까?
mrg95


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-subclass를 작성할 수 있습니다.

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을 사용하여이 코드를 어떻게 구현할 수 있는지 보여 주실 수 있습니다. 내 요구 사항은 QPushButton을 사용하는 것입니다. 그래서 plz는 나를 도와줍니다.
greshi Gupta

내가 말했듯이 적절한 방법은 없다고 생각합니다. 조금이라도 QStyle과 스타일 시트가 도움이 될 수 있습니다. 저기 봐.
Frank Osterfeld

3

이것은 오래되었지만 여전히 유용하며 QT5.3으로 완전히 테스트되었습니다.

자원 경로에 관한 예를 들어 조심하십시오.

제 경우에는 소스 디렉토리 프로젝트에 "Ressources"라는 이름의 자원 디렉토리를 만들었습니다.

"ressources"폴더에는 그림과 아이콘이 포함되어 있습니다. 그런 다음 Qt에 "Images"라는 접두사를 추가했습니다. 따라서 pixmap 경로는 다음과 같습니다.

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.