QWidget上的缩放功能

sch*_*ona 6 qt qt4

我有一个QWidget,我在绘制一些线条,我想启用/实现缩放功能,以便更好地查看我正在绘制的图片.我想将它连接到鼠标滚轮,就像在普通浏览器中一样,当您可以通过按"ctrl"键并转动鼠标滚轮来放大和缩小.

是否有默认功能?我试着寻找一些例子,但没有任何运气.那我该怎么办呢?

Rai*_*aiv 16

尝试重新实现paintEvent,并在绘制之前将比例应用于QPainter.

class YourClass:public QWidget
{
...
  protected:
     void paintEvent ( QPaintEvent * event );
     void wheelEvent ( QWheelEvent * event );
  private:
     qreal scale;
};

void YourClass::paintEvent ( QPaintEvent * event )
{
    QPainter p;
    p.scale(scale,scale);
// paint here
}
void YourClass::wheelEvent ( QWheelEvent * event )
{
    scale+=(event->delta()/120); //or use any other step for zooming 
}
Run Code Online (Sandbox Code Playgroud)