3

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

0 に答える 0