当调用没有参数的update()或repaint()时,所有内容(包括下面的可见元素)都被完全重新绘制。这可以通过将ClipRect作为参数传递来优化。 是否有一种简单的方法来获得重新绘制的区域,或者我必须手动确定它?
P.S。使用QGraphicsScene时没有这样的问题,但是,我正在处理QmlApplicationViewer和QDeclarativeItems。可能有办法强迫它采取相同的行为。
答案 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的哪个部分需要特别需要重新绘制。