2011-10-11 135 views
0

在PyQt4 Gui中,我需要仔細放置多個QPainter Pixmaps。
指定新Pixmaps的座標和高度以及寬度時,我要求所有單位都是以像素爲單位。
(否則,我的Gui會在我自己的不同分辨率的屏幕上被破壞)。QRect寬度和高度(以像素爲單位)?

放置Pixmap時,我使用DrawPixmap(QRect,QPixmap)函數。
需要放置的Pixmaps位於4個整數的元組的QRects列表中,這些元素指定了Pixmap(px)左上角和Pixmap右下角(px中)的座標, 。例如:
Blocks = [QtCore.QRect(x1,y1,x2,y2)等]。

不幸的是,當傳遞給DrawPixmap(QRect,QPixmap)時,元組的最後兩個數字被解釋爲寬度和高度,它們的單位是(cm)。

我的問題...
是否有一種方法可以完全以像素爲單位指定Pixmaps尺寸?
(通過傳遞像素的寬度和高度,或維度框角落的兩個像素座標)。

我無法在QPainter或QRect類參考中找到一種方法。
謝謝!


規格:
的Python 2.7
PyQt4的
的Windows 7 32位
IDLE

+0

像素圖總是以像素爲單位進行度量。 Pixmap ==像素圖。你確定你沒有更高的DPI圖像嗎?您是否考慮過查看QPainter的drawPixmap函數,該函數在像素圖中同時使用目標和源像素? –

+0

我將源圖像操作爲必須以像素爲單位的尺寸。出於某種原因,所有尺寸旁邊的尺寸規格都是寬度和高度,或根本沒有規定! –

回答

0

QPainter類參考,你可以找到drawPixmap方法的不同重載。讀documentation告訴QPainter::drawPixamp(QRect, QPixmap)正是你想要的。這可能是pyqt的一個特定問題,其中QRect的格式被更多地識別爲QRectF。您也可以使用獲取左上角座標以及您所在區域的寬度和高度的重載函數,如下所示:QPainter::drawPixamp(x, y, width, height, QPixmap)

+0

我已經嘗試了這兩個函數,並且如上所述,'寬度'和'高度'被解釋爲釐米(文檔所指的),而不是像素。由於解決方案問題,我只能通過像素。 –

+0

等待....現在我不太確定... 我是怎麼想到高度和寬度被解釋爲cm? 當然,我讀過它的地方.... –

相關問題