rhythmwidget.py 文件源码

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

项目:Solfege 作者: RannyeriDev 项目源码 文件源码
def on_key_press(self, window, event):
        if not self.m_editable:
            return
        key_dict = {Gdk.KEY_1: 1,
                    Gdk.KEY_2: 2,
                    Gdk.KEY_3: 4,
                    Gdk.KEY_4: 8,
                    Gdk.KEY_5: 16,
                    Gdk.KEY_6: 32,
        }
        if event.keyval in (Gdk.KEY_Right, Gdk.KEY_KP_Right):
            self.cursor_next()
            self.queue_draw()
        elif event.keyval in (Gdk.KEY_Left, Gdk.KEY_KP_Left):
            self.cursor_prev()
            self.queue_draw()
        elif event.keyval == Gdk.KEY_BackSpace:
            self.backspace()
        elif event.keyval in (Gdk.KEY_Delete, Gdk.KEY_KP_Delete):
            self.delete()
        elif event.keyval in key_dict:
            if self.m_input_mode == self.NOTE_INPUT:
                added = self.on_add_item(elems.Note(MusicalPitch.new_from_notename("c"),
                    Duration(key_dict[event.keyval], 0)))
            else:
                assert self.m_input_mode == self.REST_INPUT
                added = self.on_add_item(elems.Rest(
                    Duration(key_dict[event.keyval], 0)))
            if added:
                self.cursor_next()
            self.queue_draw()
            self.grab_focus()
        elif event.keyval == Gdk.KEY_period:
            self.on_toggle_dots(1)
        elif event.keyval == Gdk.KEY_colon:
            self.on_toggle_dots(-1)
        elif event.keyval == Gdk.KEY_t:
            self.on_toggle_tie()
        elif event.keyval == Gdk.KEY_r:
            if self.m_input_mode == self.NOTE_INPUT:
                self.m_input_mode = self.REST_INPUT
            else:
                self.m_input_mode = self.NOTE_INPUT
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号