Qt QWidget上的缩放功能
我有一个QWidget,我正在画一些线,我想启用/实现一个缩放功能,以便更好地看到我正在画的图片。我想把它连接到鼠标滚轮上,就像在普通浏览器中一样,你可以通过按下“ctrl”键并转动鼠标滚轮进行放大和缩小Qt QWidget上的缩放功能,qt,qt4,Qt,Qt4,我有一个QWidget,我正在画一些线,我想启用/实现一个缩放功能,以便更好地看到我正在画的图片。我想把它连接到鼠标滚轮上,就像在普通浏览器中一样,你可以通过按下“ctrl”键并转动鼠标滚轮进行放大和缩小 有默认的函数吗?我试图寻找一些例子,但没有任何运气。那么我该怎么做呢?尝试重新实现您的paintEvent,并在绘制之前对QPainter应用比例 class YourClass:public QWidget { ... protected: void paintEvent (
有默认的函数吗?我试图寻找一些例子,但没有任何运气。那么我该怎么做呢?尝试重新实现您的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
}
我以前使用过这个解决方案,我不得不说在las Qt版本中已经过时了。要创建这个函数是完全一样的,除了“事件-> DelTar()”之外,现在它被写为“事件-> angle DelTar())。()()可以考虑使用<代码> QScrollArea < /代码>。请看一下如何在
QScrollArea
中实现缩放,“正常”滚动结果为每步-+120,快速滚动结果为每步+-240或+-360。