QDial如何添加资源图片?
How to add a resource image on QDial?
QDial如何添加资源图片?
我已经为 QDial 定制了 class,但我如何才能在其中包含样式表,以便像我为按钮添加资源图像一样?例如:
button1->setStyleSheet("border-image:url(:/resources/img/knob.png)");
QDial does not support stylesheets,背景颜色除外。但是,这就是我的做法。
警告,不过:这根本不完整,它只是让您知道如何去做。
在您的页眉中,为 QPixmap 设置一个 属性,它将作为您的背景图片:
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 中,您必须绘制像素图:
void QCustomDial::paintEvent(QPaintEvent*)
{
QPainter painter(this);
...
QPoint start(0, 0); //whatever you want
painter.drawPixmap(start, *m_background);
...
}
最后是您问题中想要的部分:样式表。现在你已经定义了一个Q_PROPERTY
,你可以从样式表中得到它:
QCustomDial {
qproperty-backgroundImage: url(:/resources/img/knob.png);
}
QDial如何添加资源图片?
我已经为 QDial 定制了 class,但我如何才能在其中包含样式表,以便像我为按钮添加资源图像一样?例如:
button1->setStyleSheet("border-image:url(:/resources/img/knob.png)");
QDial does not support stylesheets,背景颜色除外。但是,这就是我的做法。
警告,不过:这根本不完整,它只是让您知道如何去做。
在您的页眉中,为 QPixmap 设置一个 属性,它将作为您的背景图片:
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 中,您必须绘制像素图:
void QCustomDial::paintEvent(QPaintEvent*)
{
QPainter painter(this);
...
QPoint start(0, 0); //whatever you want
painter.drawPixmap(start, *m_background);
...
}
最后是您问题中想要的部分:样式表。现在你已经定义了一个Q_PROPERTY
,你可以从样式表中得到它:
QCustomDial {
qproperty-backgroundImage: url(:/resources/img/knob.png);
}