Subject: [LilyPond] Fragments frescobaldi

From: Ben via LilyPond <[email-masked]>
Date: Thu, 03 Oct 2024 11:55:57 +0000

Bonjour, 

Pour les fragments de frescobaldi, il y a une variable $FILE_NAME qui permet d'afficher le chemin d'accès du fichier courant dans l'éditeur de texte. 

Est-ce qu'il serait possible de récupérer le contenu de cette variable directement dans le fragment lui-même, s'il est écrit en code python? 

Au plaisir, 

Ben

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/fragments-frescobaldi/5754/1).

Pour créer un nouveau sujet, écrivez à [[email-masked]](mailto:[email-masked]) ou visitez la [page d'accueil de lilypond.community](https://lilypond.community).

---

From: Jean Abou Samra via LilyPond <[email-masked]>
Date: Fri, 04 Oct 2024 07:53:28 +0000

Bonjour, je n'ai pas compris la question, pourriez-vous préciser ?

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/fragments-frescobaldi/5754/2).

---

From: Ben via LilyPond <[email-masked]>
Date: Fri, 04 Oct 2024 08:27:59 +0000

Bonjour Jean, 

Merci pour cette réponse. 

Je créé un nouveau fragment dans frescobaldi avec le code suivant: 

-*- menu blocks;
$FILE_NAME

Si j'exécute le fragment, il m'affichera le chemin d'accès du fichier courant dans l'éditeur de texte. 

Cependant, ce qui me serait utile, ce n'est pas de récupérer ce chemin dans l'éditeur de texte, mais dans un fragment python comme par exemple celui-ci: 

-*- set: Ben; menu: Modifier; python; indent: no;

from PyQt5.QtWidgets import QMessageBox

fichier = $FILE_NAME

msg = QMessageBox()
msg.setIcon(QMessageBox.Information)
msg.setText("Le fichier est: " + fichier )
msg.setWindowTitle("Information")
msg.setStandardButtons(QMessageBox.Ok)
retval = msg.exec_()

Evidemment, cela ne fonctionne pas, mais il y a sûrement une variable python derrière $FILE_NAME, et j'aurais voulu savoir si elle est accessible depuis les fragments. 

Au plaisir, 

Ben

> Le 4 oct. 2024 à 09:53, Jean Abou Samra via LilyPond <[email-masked]> a écrit :
> 
> 	Jean Abou Samra <https://lilypond.community/u/jeanas> jeanas
> Octobre 4
> Pour poster dans ce sujet, visitez la page du sujet <https://lilypond.community/t/fragments-frescobaldi/5754/2>.
> 
> Pour créer un nouveau sujet, écrivez à [email-masked] <mailto:[email-masked]> ou visitez la page d'accueil de lilypond.community <https://lilypond.community/>.
> 
> Réponses précédentes
> 
> 	Ben <https://lilypond.community/u/ben> Ben
> Octobre 3
> Bonjour,
> 
> Pour poster dans ce sujet, visitez la page du sujet <https://lilypond.community/t/fragments-frescobaldi/5754/2>.
> 
> Pour créer un nouveau sujet, écrivez à [email-masked] <mailto:[email-masked]> ou visitez la page d'accueil de lilypond.community <https://lilypond.community/>.
> 
> 
> 
> Pour vous désabonner de ces e-mails, cliquez ici <https://lilypond.community/email/unsubscribe/c19ae947f7e9f5e085340ac265061793db96b609763a80417f79065661c3527b>.
>

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/fragments-frescobaldi/5754/3).

---

From: Jean Abou Samra via LilyPond <[email-masked]>
Date: Fri, 04 Oct 2024 08:57:59 +0000

Je vois, essayez avec `fichier = cursor.document().url().toLocalFile()`.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/fragments-frescobaldi/5754/4).

---

From: Ben via LilyPond <[email-masked]>
Date: Fri, 04 Oct 2024 09:09:19 +0000

Excellent, cela fonctionne! Merci!

Et par hasard, savez-vous aussi comment récupérer de la même manière les emplacements d'inclusion Lilypond et le chemin d'accès lilypond des préférences? 

J'ai pensé à lire directement dans le fichier de préférences, mais s'il y a plus simple…

Au plaisir, 

Ben

> Le 4 oct. 2024 à 10:57, Jean Abou Samra via LilyPond <[email-masked]> a écrit :
> 
> Je vois, essayez avec fichier = cursor.document().url().toLocalFile().
> 
> Pour poster dans ce sujet, visitez la page du sujet <https://lilypond.community/t/fragments-frescobaldi/5754/4>.
> 
> Pour poster dans ce sujet, visitez la page du sujet <https://lilypond.community/t/fragments-frescobaldi/5754/4>.
> 
> Pour vous désabonner de ces e-mails, cliquez ici <https://lilypond.community/email/unsubscribe/ee95196d1e15063c88f63b044db2f3592dc16cda55dd9e1e996ff8f556f02037>.
>

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/fragments-frescobaldi/5754/5).

---

From: Ben via LilyPond <[email-masked]>
Date: Fri, 04 Oct 2024 09:33:46 +0000

Je me réponds moi-même, il suffit d'écrire: 

from PyQt5.QtCore import QSettings
s = QSettings()
s.beginGroup("lilypond_settings")
dossiers_inclus = s.value("include_path")
programme_lilypond = s.value("default")

J'ai également enfin trouvé comment passer une variable en ligne de commande de manière facultative, la doc indique qu'il faut écrire dans la ligne de commande: 

lilypond -e '(define-public Variable "Coucou")' Test.ly

et ajouter dans le fichier .ly: 

#(use-modules (guile-user))

Mais pour avoir le facultatif, il faut encore en plus ajouter: 

#(define Variable (if (defined? 'Variable) Variable "" ))

Ouf…

Merci pour l'aide, 

Ben

> Pour vous désabonner de ces e-mails, cliquez ici <https://lilypond.community/email/unsubscribe/ee95196d1e15063c88f63b044db2f3592dc16cda55dd9e1e996ff8f556f02037>.

---
Pour poster dans ce sujet, visitez la [page du sujet](https://lilypond.community/t/fragments-frescobaldi/5754/6).