2012-01-18 2 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) 

Что-то сделал это работает, но это Hacky решение и рисовать линии мне нужно увеличить количество итераций еще больше.

Я думаю, проблема может быть с прозрачностью, но понятия не имею, как ее решить.

Любая помощь будет оценена, спасибо.

+1

Ваш код отлично работает в Windows. – FogleBird

+0

Да, я предполагаю, что он также отлично работает в большинстве других Linux WM и DE. Просвещение несколько необычно. – Llamageddon

ответ

2

Вы указываете, StartDrawingOnTop где угодно? В противном случае, похоже, у вас может быть проблема с прозрачностью, поэтому вы можете попробовать установить это явно.

+0

Действительно, я забыл об этом. Мне стыдно за такую ​​глупую ошибку. – Llamageddon

1

Я думаю, вы могли бы сделать это, создав фрейм и панель, а затем вызовите метод SetTransparency фрейма, чтобы установить это. Вы определенно хотите использовать DC или что-то подобное наподобие FloatCanvas для рисования. В любом случае стоит попробовать.

+0

Потенциальное отсутствие прозрачности является проблемой здесь, но я попытаюсь сделать это, поскольку это звучит как лучшая идея. – Llamageddon

+0

Вы также можете запросить список рассылки wxPython. Там есть куча Linux-ребята и люди, которые используют возможности wx для рисования в диких и шерстяных манерах. –

Смежные вопросы