Как нарисовать прямо на экране с помощью wxpython? - PullRequest
1 голос
/ 18 января 2012

Я использую Linux и e17 с отключенной композицией, и я хотел бы создать программу, способную рисовать простые геометрические фигуры и текст прямо на экране.

Моей первой мыслью было:

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)

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

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

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

Ответы [ 2 ]

2 голосов
/ 18 января 2012

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

1 голос
/ 18 января 2012

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

...