2010-01-28 150 views
0

我一直在对这个看似简单的任务感兴趣,我真的可以使用一些帮助。 我有一个广泛的图像加载在gui(使用设计器..),我想只能绘制它的一部分,一个矩形。 我需要能够在大图像上改变这个矩形位置,以便随意绘制较大图像的不同部分。在这个过程中,矩形必须保持其大小。Qt - 从较大的Pixmap图像中绘制矩形/框架

使用Ui :: MainWindow对象我可以访问持有图像的标签,并且涉及使用此选项的解决方案是首选(为了跟上我已经编写的其他代码)

任何解决方案将非常感激:)

感谢,

伊塔马尔

回答

1

我肯定会(为便于使用),只需将一个空label作为设计师的占位符。

然后为此标签实施paintEvent(将其委托给您自己的方法)。您还必须查看QPainter,QPixMap等......应根据这些提示和文档进行操作。

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

+0

感谢您的帮助。 我创建了一个标签类并重载了paintEvent。 但我的paintEvent从不调用时,我调用repaint()。 另外,当我查询myLabel-> isVisible()时,虽然它被放置在UI中,但我总是会得到“False”。 – Ita

+0

@Ita:您可能没有将占位符标签提升为派生类型。 –

0

如果您想通过设计器或多或少地完成此操作,您可以在想要显示图像部分的位置放置一个QScrollArea。如果将滚动区域的滚动条策略设置为不显示,则可以通过滚动区域小部件手动更改可见部分。但是,创建派生窗口小部件并重新实现绘画功能可能更复杂。