def __init__(self, num_octaves, lowest_c, key_w=15):
Gtk.DrawingArea.__init__(self)
CairoCommon.__init__(self)
self.connect("draw", self.draw)
self.connect("button-press-event", self._on_button_press)
self.set_events(Gdk.EventMask.BUTTON_PRESS_MASK)
# Piano stuff
self.m_num_octaves = num_octaves
self.m_lowest_c = mpd.MusicalPitch.new_from_notename(lowest_c)
self.m_lowest_tone = self.m_lowest_c.get_octave_notename()
self.m_highest_tone = (self.m_lowest_c.clone() + 12 * num_octaves - 1).get_octave_notename()
self.m_white_h = key_w * 3.4
self.m_black_h = key_w * 2.0
self.m_key_w = key_w
self.m_last_redraw = 0
self.m_black_w = 0.6
self.set_size_request(int(num_octaves * 7 * key_w + 1), int(self.m_white_h + 1))
评论列表
文章目录