wxpythonを勉強していて、時折どのように動くかを試しているのですが、
想定通りに動きません
python
1import wx 2 3app = wx.App() 4 5frame = wx.Frame(None, wx.ID_ANY, "テスト", size=(500, 500)) 6frame.SetBackgroundColour("black") 7 8panel = wx.Panel(frame, wx.ID_ANY, pos=(0,0), size=(100, 500)) 9panel.SetBackgroundColour("blue") 10 11frame.Show() 12app.MainLoop()
このコードで自分はこんな感じで動くと思っていました。
frame.SetBackgroundColour("black")の部分で全体が黒く塗りつぶされる
↓
panel = wx.Panel(frame, wx.ID_ANY, pos=(0,0), size=(100, 500))
の部分で、0,0の座標から見て、100500のパネルが生成される
↓
panel.SetBackgroundColour("blue")の部分で100500のパネルが青で塗りつぶされて、最終出力は、0,0の座標から100*500までが青色に塗りつぶされて、他は黒色のままになる
しかしこのコードを実行すると、windowsサイズである500*500が全てが青色になってしまいます。
例えば以下のようなコードだと想定通りに動きます。
python
1import wx 2 3app = wx.App() 4 5frame = wx.Frame(None, wx.ID_ANY, "テスト", size=(500, 500)) 6frame.SetBackgroundColour("black") 7 8panel = wx.Panel(frame, wx.ID_ANY, pos=(0,0), size=(100, 500)) 9panel.SetBackgroundColour("blue") 10 11panel_2 = wx.Panel(frame, wx.ID_ANY, pos=(100,0), size=(100, 500)) 12panel_2.SetBackgroundColour("green") 13 14frame.Show() 15app.MainLoop()
このコードであれば、青色と緑色が配置された場所からパネルのsize分だけ染まります。そして黒は残ったままです。
何故最初のコードだと、全て青色に染まってしまうのか、わかる方いらしたらお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2017/10/30 04:34