如何在wxpython中直接在屏幕上绘图?

2 投票
2 回答
2939 浏览
提问于 2025-04-17 10:31

我在使用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 个回答

1

我觉得你可以通过创建一个框架和面板来实现这个功能,然后调用框架的SetTransparency方法来设置透明度。你肯定需要使用设备上下文(DC)或者类似的东西,比如FloatCanvas,来进行绘图。反正试试看也是值得的。

2

你有没有在任何地方指定过 StartDrawingOnTop 呢?如果没有的话,可能会出现透明度的问题,所以你可以试着明确设置一下这个选项。

撰写回答