2017-11-29 5 views
0

リソースイメージをQDialに追加するにはどうすればよいですか?リソースイメージをQdialに追加

私は既にQDialのカスタムクラスを行っていますが、ボタンのようにリソースイメージを追加するために、そこにスタイルシートを含めるにはどうしたらいいですか?例:

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

答えて

1

(背景色を除く)。しかし、ここで私はそれをやっている方法です。

これは完全なものではありませんが、これはどのように行うのかのアイデアです。

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)についてこのブログを読むことをお勧めします。

関連する問題