在 Windows 7 64 位上,使用 Python 2.7.3 和 wx 版本 2.8.12.1。
我正在尝试使样式为 wx.SIMPLE_BORDER 或 wx.NO_BORDER 的 wx.Frame 像其他窗口一样具有阴影,如下所示:
不幸的是,这似乎是 wx.RESIZE_BORDER 风格的一部分。没有它会发生以下情况:
所以,我去谷歌搜索,在 wx.lib.agw.artmanager 模块中找到了这个 ArtManager 类,它有一个 DropShadow 函数,声称它“在窗口下添加阴影(仅限 Windows)”。
但是,它似乎没有做任何事情。没有错误,但没有结果。也许它在 Windows 7 上不起作用,但我希望你有一个更好的答案。当然,我愿意接受其他创建阴影的方法,但这是我找到的方法。
这是我的代码:
import wx
import wx.lib.agw.artmanager
class main(wx.Frame):
def __init__(self, parent, id):
wx.Frame.__init__(self, parent, id, style=wx.SIMPLE_BORDER, size=(469, 400))
am = wx.lib.agw.artmanager.ArtManager()
self.Center()
self.Show()
am.DropShadow(self, True)
class app(wx.App):
def OnInit(self):
frame = main(None, -1)
frame.Show(True)
return True
app = app()
app.MainLoop()