QRect的宽度和高度以像素为单位?
在一个PyQt4的图形界面中,我需要小心地放置多个QPainter的图像。
在指定新图像的位置和高度、宽度时,我需要所有的单位都是像素。
(否则,我的图形界面在不同分辨率的屏幕上就会变得很糟糕)。
放置图像时,我使用DrawPixmap( QRect , QPixmap )这个函数。
需要放置的图像在一个包含4个整数的元组的QRect列表中,这些整数指定了图像左上角的坐标(以像素为单位)和右下角的坐标(也是以像素为单位)。
例如:
Blocks = [QtCore.QRect(x1, y1, x2, y2), 等等]。
可惜的是,当把这个元组传给DrawPixmap( QRect, QPixmap)时,最后两个数字被解释为宽度和高度,而这些单位是厘米。
我的问题是...
有没有办法完全用像素来指定图像的尺寸?
(可以通过传递像素的宽度和高度,或者传递尺寸框两个角的像素坐标)。
我在QPainter或QRect类的参考资料中找不到相关的方法。
谢谢!
规格:
Python 2.7
PyQt4
Windows 7 32位
IDLE
1 个回答
0
在QPainter
这个类的说明里,你会看到有不同版本的drawPixmap
方法。根据文档,QPainter::drawPixmap(QRect, QPixmap)
正好能满足你的需求。不过,这可能是pyqt的一个特定问题,因为QRect
的格式更像是QRectF
。你也可以使用另一个版本的方法,它需要你提供左上角的坐标以及区域的宽度和高度,比如:QPainter::drawPixmap(x, y, width, height, QPixmap)
。