I have had 5 minutes time...
class MyDial
: public QDial{
public:
explicit MyDial
(QWidget *parent
= 0) : QDial(parent
), m_enable
(true) {} void setUserInputEnabled(bool enable)
{
m_enable = enable;
setFocusPolicy(m_enable ? Qt::WheelFocus : Qt::NoFocus);
}
protected:
{
if(m_enable
) QDial::mouseMoveEvent(e
);
}
{
if(m_enable
) QDial::mousePressEvent(e
);
}
{
if(m_enable
) QDial::mouseReleaseEvent(e
);
}
{
if(m_enable
) QDial::keyPressEvent(e
);
}
{
if(m_enable
) QDial::keyReleaseEvent(e
);
}
{
if(m_enable
) QDial::wheelEvent(e
);
}
private:
bool m_enable;
};
class MyDial : public QDial
{
public:
explicit MyDial(QWidget *parent = 0) : QDial(parent), m_enable(true) {}
void setUserInputEnabled(bool enable)
{
m_enable = enable;
setFocusPolicy(m_enable ? Qt::WheelFocus : Qt::NoFocus);
}
protected:
void mouseMoveEvent(QMouseEvent *e)
{
if(m_enable) QDial::mouseMoveEvent(e);
}
void mousePressEvent(QMouseEvent *e)
{
if(m_enable) QDial::mousePressEvent(e);
}
void mouseReleaseEvent(QMouseEvent *e)
{
if(m_enable) QDial::mouseReleaseEvent(e);
}
void keyPressEvent(QKeyEvent *e)
{
if(m_enable) QDial::keyPressEvent(e);
}
void keyReleaseEvent(QKeyEvent *e)
{
if(m_enable) QDial::keyReleaseEvent(e);
}
void wheelEvent(QWheelEvent *e)
{
if(m_enable) QDial::wheelEvent(e);
}
private:
bool m_enable;
};
To copy to clipboard, switch view to plain text mode
Maybe there are other events you want to disable.
Lykurg
Bookmarks