3

在 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()
4

0 回答 0