User interface Qt-从较大的Pixmap图像中绘制矩形/帧

User interface Qt-从较大的Pixmap图像中绘制矩形/帧,user-interface,image,qt4,drawing,qt-creator,User Interface,Image,Qt4,Drawing,Qt Creator,我一直在为这项看似简单的任务绞尽脑汁,我真的需要一些帮助。 我在gui中加载了一个宽图像(使用designer…),我希望能够只绘制其中的一部分,一个矩形。 我需要能够改变这个矩形在大图像上的位置,以便随意绘制大图像的不同部分。在此过程中,rect必须保持其大小 使用Ui::MainWindow对象,我能够访问保存图像的标签,并且首选使用此选项的解决方案(为了跟上我已经编写的其余代码) 任何解决方案都将不胜感激:) 谢谢 Itamar为了便于使用,我肯定会在Designer中放置一个空的标签作为

我一直在为这项看似简单的任务绞尽脑汁,我真的需要一些帮助。 我在gui中加载了一个宽图像(使用designer…),我希望能够只绘制其中的一部分,一个矩形。 我需要能够改变这个矩形在大图像上的位置,以便随意绘制大图像的不同部分。在此过程中,rect必须保持其大小

使用Ui::MainWindow对象,我能够访问保存图像的标签,并且首选使用此选项的解决方案(为了跟上我已经编写的其余代码)

任何解决方案都将不胜感激:)

谢谢

Itamar

为了便于使用,我肯定会在Designer中放置一个空的
标签作为占位符

然后为此标签执行
paintEvent
(将其委托给您自己的方法)。您还必须查看QPainter、QPixMap等。。。基于这些提示和文档应该是可行的


如果您想要更多,我建议您提供一个小的代码片段来处理。

如果您希望或多或少纯粹通过designer完成这项工作,您可以在希望图像部分出现的位置放置一个
qscrolrea
。如果将滚动区域的滚动条策略设置为从不显示,则可以通过滚动区域小部件手动更改可见的部分。但是,这可能比创建派生小部件并重新实现绘制功能更复杂。

感谢您的帮助。我创建了一个label类并重载了paintEvent。但调用repaint()时从未调用我的paintEvent。另外,当我查询myLabel->isVisible()时,我总是得到“False”,尽管它被放在UI中。@Ita:您可能没有将占位符标签提升为派生类型。