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));
버튼 크기를 설정할 수도 있습니다.
QPixmap pixmap("image_path");
QIcon ButtonIcon(pixmap);
button->setIcon(ButtonIcon);
button->setIconSize(pixmap.rect().size());
button->setFixedSize(pixmap.rect().size());
다음을 사용할 수도 있습니다.
button.setStyleSheet("qproperty-icon: url(:/path/to/images.png);");
참고 : 이것은 약간 해키입니다. 마지막 수단으로 만 사용해야합니다. 아이콘은 C++
코드 또는 에서 설정해야합니다 Qt Designer
.
기존 버튼 클래스에 임의 크기의 이미지를 설정할 수 없다고 생각합니다. 버튼처럼 동작하는 간단한 이미지를 원한다면 다음과 같이 자신 만의 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 );
}
};
이것은 오래되었지만 여전히 유용하며 QT5.3으로 완전히 테스트되었습니다.
자원 경로에 관한 예를 들어 조심하십시오.
제 경우에는 소스 디렉터리 프로젝트에 "Ressources"라는 리소스 디렉터리를 만들었습니다.
"ressources"폴더에는 그림과 아이콘이 포함되어 있습니다. 그런 다음 Qt에 "Images"라는 접두사를 추가했습니다. 따라서 pixmap 경로는 다음과 같습니다.
QPixmap pixmap ( ": / images / Ressources / icone_pdf.png");
JF
QtDesigner에서이 작업을 수행 할 수 있습니다. 버튼을 클릭 한 다음 아이콘 속성으로 이동 한 다음 이미지 파일을 선택하십시오.
이 코드를 사용하십시오.
QPixmap pixmap("path_to_icon");
QIcon iconBack(pixmap);
참고 : 프로젝트 "path_to_icon"
파일 .qrc
에 있는 이미지 아이콘의 경로입니다. 여기에서.qrc
파일 을 추가하는 방법을 찾을 수 있습니다.
참고 URL : https://stackoverflow.com/questions/3137805/how-to-set-image-on-qpushbutton
'Nice programing' 카테고리의 다른 글
node.js의 require ()는 어떻게 작동합니까? (0) | 2020.11.02 |
---|---|
HTTP 캐시 제어 최대 사용 기간, 반드시 재확인 (0) | 2020.11.02 |
크롬에서 이미지의 대체 텍스트를 표시하는 방법 (0) | 2020.11.01 |
LinkedList 또는 ArrayList를 통해 또는 그 반대로 HashMap을 사용하는 경우 (0) | 2020.11.01 |
Scipy.signal.butter로 대역 통과 버터 워스 필터를 구현하는 방법 (0) | 2020.11.01 |