inputwidgets.py 文件源码

python
阅读 24 收藏 0 点赞 0 评论 0

项目:Solfege 作者: RannyeriDev 项目源码 文件源码
def __init__(self, callback, keyboard_system):
        Gtk.DrawingArea.__init__(self)
        CairoCommon.__init__(self)
        self.m_callback = callback

        def ff(first, count):
            i = mpd.notename_to_int(first)
            return [mpd.int_to_octave_notename(i + x * 3) for x in range(count)]
        keyboard_def = {'norwegian':
            (ff("g,", 19), ff("f,", 20), ff("fis,", 19),
            ff("e,", 20), ff("f,", 19))}
        keyboard_def['swedish'] = (
            ff("e,", 19), ff("dis,", 20), ff("f,", 19),
            ff("e,", 20), ff("fis,", 19))
        keyboard_def['finnish'] = (
            ff("dis,", 19), ff("d,", 20), ff("e,", 19),
            ff("dis,", 20), ff("f,", 19))
        keyboard_def['belgian'] = (
            ff("fis,", 19), ff("e,", 20), ff("f,", 19),
            ff("es,", 20), ff("e,", 19)
        )
        self.m_notenames = keyboard_def[keyboard_system]
        self.m_lowest_tone = mpd.HIGHEST_NOTENAME
        self.m_highest_tone = mpd.LOWEST_NOTENAME
        for v in self.m_notenames:
            if mpd.compare_notenames(self.m_lowest_tone, v[0]) > 0:
                self.m_lowest_tone = v[0]

            if mpd.compare_notenames(self.m_highest_tone, v[-1]) < 0:
                self.m_highest_tone = v[-1]
        self.m_button_radius = 9
        self.m_button_xdist = 20
        self.m_button_ydist = 18

        self.connect('draw', self.draw)
        self.connect('button-press-event', self._on_button_press)
        self.set_events(Gdk.EventMask.BUTTON_PRESS_MASK)
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号