IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Discussion :

Afficher le début et la fin du chemin d'un fichier


Sujet :

Interfaces Graphiques

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut Afficher le début et la fin du chemin d'un fichier
    Bonjour à tous,

    Je développe une interface graphique qui gère des lectures/écritures dans un fichier texte. Pour que l'on sache sur quel fichier on travaille, j'ai dans un coin de l'interface une zone edit qui affiche le chemin complet du fichier (i.e. fullfile(pathName, fileName)).

    Le problème c'est que quand le chemin du fichier est trop long, la chaine de caractères est tronquée. Or l'information la plus importante est le nom du fichier, et je préfererais afficher quelque chose du genre: "D:\simulations\...\fichier_bidule.txt", en tronquant au milieu du chemin, afin que le nom du fichier sur lequel on travaille soit toujours visible. Est-ce qu'il y a une fonction matlab qui peut faire ça simplement sans devoir réinventer la roue ?

  2. #2
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    Une fonction, non.
    Mais en combinant l'utilisation de FILEPARTS et FULLFILE, tu dois pouvoir y arriver assez facilement.

    Note : dans ce cas pense à utiliser la propriété Tooltipstring de ton objet edit pour que l'utilisateur puisse voir le nom en entier

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    Merci beaucoup pour ta réponse. J'espérais un peu que Matlab ait fait une fonction magique qui compare le taille en pixels de mon edit avec celle de ma chaine de caractères pour trouver le découpage qui va bien

    Je ne connaissais pas l'usage du TooltipString, du coup je l'utilise et il sert bien Seul point noir : TooltipString ne s'affiche que si l'objet est 'Enable'...

  4. #4
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    Citation Envoyé par 65days Voir le message
    Merci beaucoup pour ta réponse. J'espérais un peu que Matlab ait fait une fonction magique qui compare le taille en pixels de mon edit avec celle de ma chaine de caractères pour trouver le découpage qui va bien
    Non, et bien au contraire c'est assez complexe.
    Il semblerait que normalement on devrait pouvoir s'en tirer en manipulant un certain nombre de propriété : Extent (en lecture seul), Position, Units, FontName, FontUnits...Et oui rien que ça !
    Je n'ai jamais réussi à bien manipuler cette propriété Extent et à comprendre comment bien dimensionner un objet en fonction de la chaine de caractères.

    On peut étudier comment les gens de The Mathworks utilisent cette propriété dans une fonction comme INPUTDLG par exemple (qui est éditable).
    Mais je n'ai jamais trouvé cela satisfaisant.

    Par contre comme je suppose que tu as défini une taille pour ton objet edit tu dois être capable de fixer le nombre maximum de caractères qui rentre dedans, non ?

    Pour ce qui est du Tooltip, si ton objet edit n'est pas en enable on, peut-être peux-tu le remplacer par un objet de type text ?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    Citation Envoyé par Caro-Line Voir le message
    Par contre comme je suppose que tu as défini une taille pour ton objet edit tu dois être capable de fixer le nombre maximum de caractères qui rentre dedans, non ?
    oui. J'utilise le GUIDE comme je débute dans la programmation d'interfaces graphiques, et dans le object inspector tu peux choisir la taille de l'objet et l'unité dans laquelle elle est exprimée, et notamment en caractères. J'ai mis la largeur de edit à 40 caractères (soit 200 pixels). Après (de mémoire) je fais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    n = max(37, length(FileName) - 5);
    set(handles.db_name, 'String', [PathName(1:40-n) '...\' Filename], 'Tooltipstring', fullfile(PathName, FileName));
    Je prends le max pour qu'au pire des cas si FileName est très long ça affiche "C:\...\fichier.truc". Ça marche convenablement, mais donner des tailles en nombre de caractères à moyennement du sens quand la police n'est pas à chasse fixe, un point ou un 'i' prennent bien moins de place en réalité qu'un 'M'.

    Citation Envoyé par Caro-Line Voir le message
    Pour ce qui est du Tooltip, si ton objet edit n'est pas en enable on, peut-être peux-tu le remplacer par un objet de type text ?
    oui je pourrais mais je trouve qu'un objet de type text est moins joli dans ce cas

  6. #6
    Expert confirmé
    Avatar de duf42
    Homme Profil pro
    Formateur en informatique
    Inscrit en
    Novembre 2007
    Messages
    3 111
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Formateur en informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 111
    Points : 4 661
    Points
    4 661
    Par défaut
    Il faudrait tester, mais il me semble que la police 'Courier New' pourrait t'aider puisqu'il me semble encore que la taille des caractères est fixe (quelque soit le caractère).

    A tester...

  7. #7
    Expert éminent sénior
    Avatar de Caro-Line
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    9 458
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 9 458
    Points : 14 828
    Points
    14 828
    Par défaut
    Yep Courier New est la police à fonte fixe sur la plupart des machines.
    Le mieux c'est encore d'utiliser la fonte 'FixedWidth' :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    uicontrol('string','toto','fontname','FixedWidth');
    Ceci dit avec les quelques tests que j'ai effectués je n'ai toujours pas compris comment il comptait les caractères avec l'unité character

  8. #8
    Nouveau membre du Club
    Inscrit en
    Juillet 2009
    Messages
    37
    Détails du profil
    Informations forums :
    Inscription : Juillet 2009
    Messages : 37
    Points : 32
    Points
    32
    Par défaut
    oui effectivement 'FixedWidth' doit être quelque chose de plus portable vers les machines autres que windows. Il me semble que d'origine beaucoup de distributions linux ne doivent pas fournir courrier new pour des raisons de license.

    je n'ai plus de quoi vérifier ce soir, mais je dirais que pour calculer la largeur il fait taille de la police * un point.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Afficher date de début et de fin semaine
    Par flavdu44 dans le forum Android
    Réponses: 4
    Dernier message: 17/11/2011, 15h12
  2. Réponses: 0
    Dernier message: 05/10/2010, 11h37
  3. Réponses: 3
    Dernier message: 08/01/2009, 12h12
  4.  ce truc s'affiche au début de ma page?
    Par supergrey dans le forum Langage
    Réponses: 3
    Dernier message: 15/05/2007, 14h08
  5. Fonction permettant d'afficher le chemin d'un fichier
    Par kilinette dans le forum Langage
    Réponses: 4
    Dernier message: 22/06/2004, 10h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo