示例#1
0
    def __init__(self):
        super().__init__()
        self.setupUi(self)

        # self.donIndex_list = []
        # self.don_list = []

        # self.push_changeOrder.clicked.connect(self.push_changeOrder_clicked)
        # self.push_add.clicked.connect(self.push_add_clicked)
        # self.push_del.clicked.connect(self.push_del_clicked)
        # self.push_addBeat.clicked.connect(self.push_addBeat_clicked)
        # self.push_delBeat.clicked.connect(self.push_delBeat_clicked)
        # self.MAX_WIDTH = self.label_beat.width()
        # self.beatInfo = {'beats':[], 'hIndex':-1}

        self.label_beat.setFixedSize(self.scrollArea.height() * 2 / 3,
                                     self.scrollArea.height() * 2 / 3)
        self.horizontalLayout.addStretch(1)

        self.push_load.clicked.connect(self.push_load_clicked)
        self.push_save.clicked.connect(self.push_save_clicked)
        self.noteList = list()
        self.beatList = list()
        self.highlightBeatLabel = None
        self.score = Score.TJA()
        # print(self.label_beat.width())

        # sample code
        self.push_create.clicked.connect(self.push_create_clicked)
        self.undoStack = QUndoStack(self)
        self.donList = []
        self.donNum = 0
示例#2
0
 def push_load_clicked(self):
     rendaflag = False
     rendaNote, rendaStart, rendaEnd = None, None, None
     fname = QFileDialog.getOpenFileName(self)[0]
     if fname == '':
         return
     # fname="test.tja"
     self.highlightBeatLabel = None
     self.score.clearLabel()
     score = Score.TJA(fname)
     track = score.track_list[0]
     curBarPos = self.label_beat.width(
     )  # left-most absolute position x of current bar
     barIdx = 0
     for bar in track.bar_list:
         m = bar.measure[0]
         beatIdx = 0
         for beat in bar.beat_list:
             if beatIdx == len(bar.beat_list) - 1:
                 beat.label = self.makeLabelBeat(end=True)
             else:
                 beat.label = self.makeLabelBeat()
             w = beat.label.width()
             offset = w / beat.splitParam  # distance between notes
             noteIdx = 0
             for note in beat.note_list:
                 if note.getNote() in [5, 6, 7]:
                     rendaNote = self.makeLabelNote(note)
                     N = rendaNote
                     rendaStart = curBarPos + beatIdx * w + noteIdx * offset - N.height(
                     ) / 2
                 elif note.getNote() == 8:
                     rendaEnd = curBarPos + beatIdx * w + noteIdx * offset - rendaNote.height(
                     ) / 2
                     rendaNote.setRenda(rendaStart, rendaEnd)
                 else:
                     N = self.makeLabelNote(note)
                 N.move(
                     round(curBarPos + beatIdx * w + noteIdx * offset -
                           N.height() / 2),
                     round(self.label_beat.y() +
                           self.label_beat.height() / 2 - N.height() / 2))
                 note.label = N
                 noteIdx += 1
                 # print(N.x())
             beatIdx += 1
         curBarPos += m * w
         barIdx += 1
     self.score = score
     # self.score.print()
     print(self.score.toTJAForm())