有没有办法在Qt中获得重新绘制的区域?

时间:2016-10-03 13:40:31

标签: c++ qt qt4.8

当调用没有参数的update()或repaint()时,所有内容(包括下面的可见元素)都被完全重新绘制。这可以通过将ClipRect作为参数传递来优化。 是否有一种简单的方法来获得重新绘制的区域,或者我必须手动确定它?

P.S。使用QGraphicsScene时没有这样的问题,但是,我正在处理QmlApplicationViewer和QDeclarativeItems。可能有办法强迫它采取相同的行为。

1 个答案:

答案 0 :(得分:1)

  

是否有一种简单的方法可以获得重新粉刷的区域,或者我必须确定   手动吗?

传递给paintEvent()的QPaintEvent对象包含#!/bin/bash Version=$(sw_vers | grep ProductVersion | tail -c 7 | cut -d . -f 2) if [ $Version -ge 12 ] then launchctl unload /Library/LaunchDaemons/net.sierra.plist rm -f /Library/LaunchDaemons/net.sierra.plist rm -f /usr/local/bin/sierra.sh exit 0 else rm -rf /Applications/Install\ macOS\ Sierra.app/ osascript -e 'tell app "System Events" to display dialog "macOS Sierra is not allowed on computers at this time."' fi rect成员,您可以检查这些成员以确定QWidget的哪个部分需要特别需要重新绘制。