- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我在 Qt 上创建了一个图像编辑器,但在 graphicsView
上显示图像时遇到问题。
当我打开图像时,我调用 fitInView
以便它很好地适合 graphicsView
而问题就在这里:当我最大化窗口时,图形 View 大小发生变化因为我设置了水平布局,但图像没有改变大小。
这里有一些关于我在说什么的图片:
如果我在窗口已经最大化时打开文件,一切都很好。
如何在窗口最大化时调用 fitInView
?
最佳答案
非常简单,只需重写 resizeEvent。
此工作代码依赖于 QGraphicsView 和 QGraphicsScene,缩放也可以工作;)
const double ZOOM_FACTOR = 1.5;
const double ZOOM_MIN = 1.0;
void ImageViewer::resizeEvent(QResizeEvent* event)
{
if(ZOOM_MIN < m_current_zoom)
{
m_graph_view->setTransform(QTransform::fromScale(m_current_zoom, m_current_zoom));
}
else
{
m_graph_view->fitInView(0, 0, m_graph_scene->width(), m_graph_scene->height(), Qt::KeepAspectRatio);
}
}
void ImageViewer::zoomIn()
{
m_current_zoom = m_current_zoom*ZOOM_FACTOR;
m_graph_scene->setSceneRect(m_graph_scene->itemsBoundingRect());
m_graph_view->setTransform(QTransform::fromScale(m_current_zoom, m_current_zoom));
}
void ImageViewer::zoomOut()
{
m_current_zoom = m_current_zoom/ZOOM_FACTOR;
m_graph_scene->setSceneRect(m_graph_scene->itemsBoundingRect());
if(ZOOM_MIN < m_current_zoom)
{
m_graph_view->setTransform(QTransform::fromScale(m_current_zoom, m_current_zoom));
}
else
{
m_graph_view->fitInView(0, 0, m_graph_scene->width(), m_graph_scene->height(), Qt::KeepAspectRatio);
}
}
关于c++ - 调整窗口大小时如何为 `fitInView`?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35329386/
我在 Qt 上创建了一个图像编辑器,但在 graphicsView 上显示图像时遇到问题。 当我打开图像时,我调用 fitInView 以便它很好地适合 graphicsView 而问题就在这里:当我
为什么 QGraphicsView.fitInView() 仅在我调整窗口大小后才起作用? 我在 MS Windows 10 上使用 Python 2.7.7 和 Qt 4.8.7。下面是演示该问题的
为什么 QGraphicsView.fitInView() 仅在我调整窗口大小后才起作用? 我在 MS Windows 10 上使用 Python 2.7.7 和 Qt 4.8.7。下面是演示该问题的
为什么这样: graphics_view->fitInView(scene->sceneRect(), Qt::KeepAspectRatio); 没有按预期工作?它没有正确地适合场景,在它周围显示了
我有一个发生在静态 map 之上的游戏。我想在 QGraphicsView::drawBackground() 中绘制 map 。 一切似乎都在膨胀。除了除非我调整窗口大小,否则不会绘制任何内容...
我正在尝试制作一个宽度与高度相同的 QGraphicsView 位于窗口中心。 我在 Qt Designer 中创建了一个普通的 QGraphicsView 并设置了最小尺寸,添加了一些将 QGrap
我的 Qt 应用程序中有一个自定义 QGraphicsScene(我的类称为 MainScene)。这个场景包含一些 Rect 项目,它们被放置在网格中 见图一 另外,我可以动态改变这个矩形网格的大小
在尝试实现项目大小不变但项目之间的距离被放大的场景时,我遇到了以下代码的问题,该代码绘制了一个矩形和文本“A”。现在,如果我在矩形项目上设置标志 ItemIgnoresTransformations,
我在尝试将我的场景内容(拉伸(stretch))放入我的 QDeclarativeView 时遇到问题。我以常用方式加载 QML 文件。我用下面的代码覆盖了 showEvent 和 resizeEve
我是一名优秀的程序员,十分优秀!