2012-01-18 30 views
1

我使用Linux和e17的組合禁用,我想創建一個程序,能夠直接在屏幕上繪製簡單的幾何形狀和文本。如何使用wxpython直接在屏幕上繪製?

我首先想到的是要做到:

import wx 
app = wx.App(False) 
s = wx.ScreenDC() 
s.Pen = wx.Pen("#FF0000") 
s.DrawRectangle(60,60,120,120) 

但是,這是行不通的,所以我取代了最後一行有:

for i in range(0,129): 
    s.DrawRectangle(60,60,120,120) 

莫名其妙地做它的工作,但它是一個哈克解決方案,並繪製線我需要更多地增加迭代量。

我認爲問題可能與透明度有關,但不知道如何解決。

任何幫助,將不勝感激,謝謝。

+1

您的代碼在Windows上正常工作。 – FogleBird 2012-01-18 14:55:26

+0

是的,我認爲它也適用於大多數其他Linux WM和DE。啓蒙有點不尋常。 – Llamageddon 2012-01-18 17:17:20

回答

2

您是否在任何地方指定StartDrawingOnTop?否則,看起來你可能有透明度問題,所以你可以嘗試明確設置。

+0

的確,我忘記了這一點。我爲這樣一個愚蠢的錯誤感到羞愧。 – Llamageddon 2012-01-19 08:49:27

1

我想你可以通過創建一個框架和麪板,然後調用框架的SetTransparency方法來設置它。你一定要使用DC或類似FloatCanvas的東西來完成繪圖。無論如何值得一試。

+0

潛在的缺乏透明度是一個問題,但我會嘗試這種方式,因爲它聽起來像一個更好的主意。 – Llamageddon 2012-01-19 08:55:15

+0

你也可以在wxPython郵件列表上詢問。那裏有一羣Linux傢伙以及那些以狂野而毛茸茸的方式使用wx的繪圖功能的人。 – 2012-01-19 15:35:35