假設我有一個Paper (wx.Panel)
,我想以毫米爲單位繪製一個圖表,因此我將PaintDc
的映射模式設置爲毫米:dc.SetMapMode(wx.MM_METRIC)
,然後我將繪製橫軸。wxPython,如何以毫米爲單位獲取小部件的大小?
class Paper(wx.Panel):
def onPaint(self, event):
dc = wx.PaintDC(self)
dc.SetMapMode(wx.MM_METRIC)
w, h = self.GetClientSize() <<< This line get size in pixel.
dc.DrawLine(0, h-10, w-1, h-10)
我希望軸從紙張的底部遠方停留10毫米,所以我查詢爲w, h = self.GetClientSize()
紙張的尺寸,但問題是尺寸爲像素,而不是毫米。
以mm爲單位獲得面板尺寸的功能是什麼,或者是否有將像素尺寸映射到mm的功能?
那麼,您能否將我的回答標記爲答案,我認爲您正在做我所說的。除了事實上它可以根據顯示器做出錯誤的結果,所以如果你需要精確的結果,那不是最好的方法。 引用來自http://markmail.org/message/2prubyh6h5cnwfg5 與所說的相反,我相信監視器和圖形卡之間的一些協議可以通知監視器的DPI,或監視器的型號和製造商可以根據製造商的規格來確定DPI。謝謝。 –
對於您不想依賴可能出錯的信息的應用程序,您可以簡單地向用戶展示圖形,並要求它測量它的實際大小,以便您確切知道DPI,精度無論如何取決於用戶measurament。 –