Windows 7 64 ビットでは、Python 2.7.3 および wx バージョン 2.8.12.1 を使用します。
次のように、wx.SIMPLE_BORDERまたはwx.NO_BORDERとしてスタイル設定されたwx.Frameを取得して、他のウィンドウのように影を付けようとしています:
残念ながら、これは wx.RESIZE_BORDER スタイルの一部のようです。それなしで何が起こるかは次のとおりです。
それで、グーグルに行って、「ウィンドウの下に影を追加する(Windowsのみ)」と主張するDropShadow機能を備えたwx.lib.agw.artmanagerモジュールでこのArtManagerクラスを見つけました。
でも、どうにもならなかったようです。エラーはありませんが、結果はありません。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()