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 :

Positionner un waitbar


Sujet :

Interfaces Graphiques

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Ingénierie en automatisation et systèmes intelligents
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénierie en automatisation et systèmes intelligents
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Par défaut Positionner un waitbar
    Bonjour,

    J'ai un problème tout bête.

    Ceci centre bel et bien ma figure :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    %...
    set(0,'Units','pixels');
    ecran = get(0,'ScreenSize');
    figSize = ecran(4)*0.75;
    figPos = [ecran(3)/2 - figSize/2, ecran(4)/2 - figSize/2, figSize, figSize];
    %...
    pfig = figure('Name','Meilleure solution actuelle','Numbertitle','off','OuterPosition',figPos);
    %...
    Mais ceci ne positionne pas la barre de progression dans le coin supérieur gauche :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    %...
    progress = waitbar(0,'Évolution en cours... (0 %)','Name','Progression de l''évolution');
        waitPos = get(progress,'OuterPosition');
        set(progress,'OuterPosition',[0, ecran(4) - waitPos(4), waitPos(3), waitPos(4)]);
    %...
    waitbar(iter/numIter,progress,sprintf('Évolution en cours... (%g %%)',iter/numIter*100));
    %...
    D'ailleurs, j'aurais aussi aimé la centrer horizontalement, mais [ecran(3)/2 - waitPos(3)/2, ..., ..., ...] ne fonctionne pas non plus.

    Merci !

  2. #2
    Rédacteur/Modérateur

    Avatar de Jerome Briot
    Homme Profil pro
    Freelance mécatronique - Conseil, conception et formation
    Inscrit en
    Novembre 2006
    Messages
    20 317
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance mécatronique - Conseil, conception et formation

    Informations forums :
    Inscription : Novembre 2006
    Messages : 20 317
    Par défaut
    Je ne répondrai pas à ta question (si ce n'est que pour centrer un interface => Comment positionner simplement une interface graphique ?) mais je veux juste souligner que la fonction WAITBAR ralentit considérablement l'exécution du code.

    Pour ma part, je préfère une solution similaire à celle que je donne ici : Afficher une barre de progression de l’exécution
    Il est tout à fait possible d'adapter cette solution pour mettre l'affichage du compteur dans un objet d'une interface graphique.

  3. #3
    Membre averti
    Homme Profil pro
    Ingénierie en automatisation et systèmes intelligents
    Inscrit en
    Septembre 2008
    Messages
    40
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénierie en automatisation et systèmes intelligents
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2008
    Messages : 40
    Par défaut
    Merci encore une fois pour ces informations.

    Dans mon code, il y a une possibilité d'afficher un graphique (plot) qui peut changer à certaines, voire plusieurs itérations.

    Avant, pour montrer l'évolution en temps réel, je l'affichais à toutes les itérations. Évidemment, j'ai voulu une solution moins lourde. J'ai alors vu le waitbar.

    Cependant, j'ai effectivement remarqué que même s'il était mis à jour dans uniquement dans ma principale boucle for, le temps d'exécution est doublé.

    Votre solution est encore une fois brillante. Pour le backspace, saviez-vous qu'il y a la possibilité d'utiliser \b ou il y a une justification particulière ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    fprintf('\b\b\b\b\b\b\b\b%06.2f %%',iter/numIter*100);

  4. #4
    Invité
    Invité(e)
    Par défaut
    Bonsoir,

    Pour répondre toutefois à la question initiale, il faut veiller à ce que les unités de ecran et waitPos soient les mêmes.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set(progress,'Units', get(0,'Units') )
    waitPos = get(progress,'OuterPosition');

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

Discussions similaires

  1. Déplacement ou positionnement d'une fenêtre
    Par agl dans le forum C++Builder
    Réponses: 3
    Dernier message: 10/11/2003, 09h29
  2. positionnement curseur et code ansi
    Par coach dans le forum C
    Réponses: 7
    Dernier message: 03/11/2003, 23h32
  3. LinCVS - Comment positionner CVSROOT ?
    Par sequentaire dans le forum Réseau
    Réponses: 3
    Dernier message: 10/07/2003, 06h53
  4. RichEdit tjs positionner le curseur en bas du texte
    Par microseb dans le forum C++Builder
    Réponses: 2
    Dernier message: 16/05/2003, 17h48
  5. [TSynMemo] Positionnement par ligne et colonne
    Par Mercilius dans le forum Composants VCL
    Réponses: 9
    Dernier message: 16/04/2003, 16h22

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