我有一个QGraphicsWidget
的例子。我想添加拖曳按钮,放大按钮和缩小按钮。代码:
#include "myGraphicsWidget.h"
int main(int argc,char* argv[])
{
QApplication app(argc,argv);
QGraphicsScene scene;
myGraphicsWidget* graphicsWidget = new myGraphicsWidget("This is My Custom\n QGraphicsWidget!!");
QGraphicsView view(&scene);
scene.addItem(graphicsWidget);
view.showFullScreen();
return app.exec
();
}
请给我写一个缩放功能(插槽)。
答案 0 :(得分:0)
您需要覆盖wheelEvent或创建一个处理QGraphicsView规模的按钮:
void myGraphicsWidget::wheelEvent(QWheelEvent *event)
{
qreal zoomFactor = 1.15;
if (event->delta() > 0 && zoomLevel < 20) {
// Zoom In
scale(zoomFactor, zoomFactor);
} else if (event->delta() < 0 && zoomLevel > 0) {
// Zooming out
scale(1.0 / zoomFactor, 1.0 / zoomFactor);
}
scrollViewTo(event->pos());
}
对于Slot来说,这是相同的 - 但你需要将zoomIn和zoomOut的代码分开。