0
リソースイメージをQDialに追加するにはどうすればよいですか?リソースイメージをQdialに追加
私は既にQDialのカスタムクラスを行っていますが、ボタンのようにリソースイメージを追加するために、そこにスタイルシートを含めるにはどうしたらいいですか?例:
button1->setStyleSheet("border-image:url(:/resources/img/knob.png)");
リソースイメージをQDialに追加するにはどうすればよいですか?リソースイメージをQdialに追加
私は既にQDialのカスタムクラスを行っていますが、ボタンのようにリソースイメージを追加するために、そこにスタイルシートを含めるにはどうしたらいいですか?例:
button1->setStyleSheet("border-image:url(:/resources/img/knob.png)");
(背景色を除く)。しかし、ここで私はそれをやっている方法です。
これは完全なものではありませんが、これはどのように行うのかのアイデアです。
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(part1とpart2)についてこのブログを読むことをお勧めします。