2017-11-29 4 views
0

QDial에 리소스 이미지를 추가하는 방법은 무엇입니까?Qdial에 리소스 이미지 추가

QDial에 대한 사용자 지정 클래스를 이미 만들었지 만 버튼에 대한 리소스 이미지를 추가하기 위해 어떻게 스타일 시트를 포함시킬 수 있습니까? 예 :

button1->setStyleSheet("border-image:url(:/resources/img/knob.png)"); 

답변

1

QDial does not support stylesheets (배경색 제외). 그러나, 나는 그것을 어떻게하고 있는지 여기에있다.

경고 : 이것은 전혀 완료되지 않았으며, 어떻게하는지에 대한 아이디어 만 제공합니다.

void QCustomDial::paintEvent(QPaintEvent*) 
{ 
    QPainter painter(this); 
    ... 
    QPoint start(0, 0); //whatever you want 
    painter.drawPixmap(start, *m_background); 
    ... 
} 
:

class QCustomDial : public QDial 
{ 
    Q_OBJECT 

    Q_PROPERTY(QPixmap backgroundImage READ backgroundImage WRITE setBackgroundImage DESIGNABLE true) 

    QPixmap* m_background; 

public: 
    QPixmap backgroundImage() { return *m_background; } 

    void setBackgroundImage(QPixmap pixmap) 
    { 
     *m_background = pixmap; 
     update(); 
    } 

private: 
    QPixmap* m_background; 
}; 

그런 다음 paintEvent에, 당신은 픽스맵을 그릴해야합니다 : 헤더에

는 배경 이미지가 될 것입니다 QPixmap에 대한 속성을 설정

마지막으로, 당신이 원하는 부분, 스타일 시트 : 스타일 시트. 이제 당신이 Q_PROPERTY을 정의, 당신은 스타일 시트에서 그것을 얻을 수 있습니다 내가 당신을 도울 수 있기를 바랍니다

QCustomDial { 
    qproperty-backgroundImage: url(:/resources/img/knob.png); 
} 

합니다. 또한 사용자 정의 QDial (part1part2)에 대한이 블로그를 읽어 보시기 바랍니다.