wxPython DrawRectangleで棒グラフもどきを表示してみる
wxPythonのDrawLineではラインの太さを設定できるので、棒グラフを描いてみたが、ラインの両端が丸くなって表示されてしまって棒グラフには使えない。こんなとき、DrawRectangleを使うときっちり棒グラフの棒を描くことができる。いつものごとくメモしておく。
グラフィックを描くにあたり参考にしたリンク
ウィンドウに青、黄、赤の棒グラフのようなものを表示させる。そして、DrawLineで同じ太さのラインを描いて比較してみる。
#!/usr/bin/env python #coding:utf-8 import wx class MyWindow(wx.Frame): def __init__(self, parent=None, id=-1, title=None): wx.Frame.__init__(self, parent, id, title) self.panel = wx.Panel(self, size=(300, 200)) self.panel.SetBackgroundColour('WHITE') self.panel.Bind(wx.EVT_PAINT, self.OnPaint) self.Fit() def OnPaint(self, event): dc = wx.PaintDC(self.panel) dc.SetPen(wx.Pen('blue')) dc.SetBrush(wx.Brush('blue')) dc.DrawRectangle(20,20,260,40) dc.SetPen(wx.Pen('yellow')) dc.SetBrush(wx.Brush('yellow')) dc.DrawRectangle(20,60,200,40) dc.SetPen(wx.Pen('red')) dc.SetBrush(wx.Brush('red')) dc.DrawRectangle(20,100,160,40) dc.SetPen(wx.Pen('green',40)) dc.DrawLine(20,170,280,170) if __name__ == '__main__': app = wx.PySimpleApp() w = MyWindow(title='wxgr-rect') w.Center() w.Show() app.MainLoop()
メモ
- SetPenでペンを、SetBrushでブラシを設定しておいて、DrawRectangle(x, y, width, height)メソッドをコールすると、長方形の枠を描いてから、同じ色で中を塗りつぶす。
- DrawLine(x1, y1, x2, y2)メソッドは両端が丸く表示される。