如果右边框选的部分刚好占满左边的图,item是可以使用的. 因为你在左侧框选的时候,右侧都是同步的显示框选的部分.那么左侧是看不到那个item的. 通常情况下只会有一个控件有焦点,当左侧view获得焦点的时候,把那个item隐藏掉.当右侧获得焦点的时候再显示出来. 这样存在的问题就是左侧获得焦点右侧就不显示蓝色框了. 还有widget的放到view上,这样就只会有一个view上有,你说同样的问题,我不是很懂. 我觉得加一个Widget是可以解决的. 当然你可能要继承来重写一下,让它可以拖动大小. 在你的鼠标点击到view上的时候,显示出来, 鼠标移动的时候改变Widget的大小.
不是存成图片哦,只是保存图像数据,是不一样的. 不过不得不承认,两个view,能更好的解决这个问题. 能直接render到两个view上面再好不过了. 至于蓝色框缩放问题,先算出蓝色框在右侧上的位置比例.包括xy的比例,宽高的比例. 这个比例带入到左侧的view上进行计算,就可以知道框选部分在左侧的范围. 然后移动滚动条就可以把框选的部门移动到中心显示.
补充一下相关函数,估计还有其它方式. void QWidget::render(QPaintDevice *target, const QPoint &targetOffset = QPoint(), const QRegion &sourceRegion = QRegion(), RenderFlags renderFlags = RenderFlags( DrawWindowBackground | DrawChildren )) 发送消息 void QCoreApplication::postEvent(QObject *receiver, QEvent *event, int priority = Qt::NormalEventPriority)
16,213
社区成员
26,593
社区内容
加载中
试试用AI创作助手写篇文章吧