Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • Users
  • Groups
  • Search
  • Get Qt Extensions
  • Unsolved
Collapse
Brand Logo
  1. Home
  2. International
  3. French
  4. Script QML (MuseScore) pour étendre/réduire les durées d'un ensemble de notes sélectionnées
Forum Updated to NodeBB v4.3 + New Features

Script QML (MuseScore) pour étendre/réduire les durées d'un ensemble de notes sélectionnées

Scheduled Pinned Locked Moved Unsolved French
musescorepluginsqmlc++
1 Posts 1 Posters 431 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • S Offline
    S Offline
    signalK
    wrote on last edited by signalK
    #1

    bonjour,

    Je dois créer un plugin pour MuseScore qui peut étendre/réduire les durées d'un ensemble de notes sélectionnées selon un pourcentage choisi
    MuseScore le fait pour un pourcentage =50% et 200% mais pas pour un autre pourcentage.

    Voici mon script qml:

    import MuseScore 3.0
    import QtQuick 2.2
    import QtQuick.Controls 1.1
    import QtQuick.Controls.Styles 1.3
    import QtQuick.Layouts 1.1
    import QtQuick.Dialogs 1.1
    
    
    
    MuseScore {
        menuPath: "Plugins.ScaleNotes"
        description: "Elargir/Rétrécir les durées des notes sélectionnées en pourcentage"
    
    onRun: {
            if (!curScore) {
                error("No score open.\nThis plugin requires an open score to run.\n")
                Qt.quit()
            }
        }
    
        function applyDurationPercentage(score, percentage) {
            var selectedElements = score.selectedNotes
            for (var i = 0; i < selectedElements.length; ++i) {
                var element = selectedElements[i]
                if (element.isChord()) {
                    var chord = element.toChord()
                    for (var j = 0; j < chord.notes.length; ++j) {
                        var note = chord.notes[j]
                        note.duration *= percentage / 100
                    }
                } else {
                    var note = element.toNote()
                    note.duration *= percentage / 100
                }
            }
        }
    
     
     Rectangle {
            color: "lightgrey"
            anchors.fill: parent
    
            GridLayout {
                columns: 2
                anchors.fill: parent
                anchors.margins: 10
                Label {
                    text: qsTr("poucentage(0 to 1000): ")
                }
               SpinBox {
        id: velocityOffset
        maximumValue: 1000
        minimumValue: 0
        value: 0
        editable: true // Permet à l'utilisateur d'entrer directement une valeur
    
        // Gestionnaire d'événement appelé lorsque la valeur du SpinBox change
        onValueChanged: {
            var getValeur = velocityOffset.value; // Récupérer la valeur du SpinBox
            console.log("Nouvelle valeur de percentage:", percentage);
            // Utilisez la valeur de percentage comme vous le souhaitez
        }
      }
    
    }
       }
    
      Button {
                    id: applyButton
                    text: qsTranslate("PrefsDialogBase", "Apply")
                    onClicked: {
                        applyDurationPercentage(score, getValeur) 
                        Qt.quit()
                    }
                }
    }
    
    

    Pourquoi aucune fenêtre contextuelle ne s'affiche lorsqu'on clique sur ce plugin après avoir crée une partition?

    merci de votre aide

    1 Reply Last reply
    0

    • Login

    • Login or register to search.
    • First post
      Last post
    0
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Get Qt Extensions
    • Unsolved