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

Qt Discussion :

Quand un widget a sa taille finale ?


Sujet :

Qt

  1. #1
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut Quand un widget a sa taille finale ?
    Bonjour,

    L'osque j'observe la largueur widget->width() dans le constructeur de mon MainWindow il ne me donne pas les bonnes largueur. Si je les regarde via un click bouton c'est correcte. Je supose que dans le constructeur les tailles des éléments ne sont pas encore correctement dimensionné, à quelle moment le sont-elles ou quelle evenement me permet de le savoir?
    Merci d'avance de votre aide

    En ligne

  2. #2
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Salut.
    Citation Envoyé par uriotcea Voir le message
    Bonjour,

    L'osque j'observe la largueur widget->width() dans le constructeur de mon MainWindow il ne me donne pas les bonnes largueur. Si je les regarde via un click bouton c'est correcte. Je supose que dans le constructeur les tailles des éléments ne sont pas encore correctement dimensionné, à quelle moment le sont-elles ou quelle evenement me permet de le savoir?
    Merci d'avance de votre aide

    En ligne
    Souvent après leurs première affichage

  3. #3
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Oui, mais y a t-il un evement quand la fenêtre a été completemnt dessinée?

  4. #4
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Oui, mais y a t-il un evement quand la fenêtre a été completemnt dessinée?
    Je ne pense pas.
    Tu pourrais utiliser la fonction static QTimer::singleShot dans ton constructeur
    http://qt.developpez.com/doc/latest/...tml#singleShot
    et ainsi faire ce que tu veut aprés l'affichage

  5. #5
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Salut,

    Tu connaitras la taille en dérivant de sizeEvent.

  6. #6
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    au premier passage dans sizeEvent de MainWindow, les tailles ne sont tj pas correctes, quand je redimensionnement manuellement, au second passage c'est ok. C'est tout de même pas trés satisfaisant.
    J'ai vraiment besoin au moment de l'affichage d'afficher certaine datas en fonction de la taille de certains widgets

  7. #7
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Tu peux donner un exemple concrêt de ce que tu veux obtenir stp?

  8. #8
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    J'ai un QLineEdit dans lequel j'affiche un démarrage un nom complet de fichier et je l'utilise comme suit pour tronquer ce chemin en fonction de la largeur du widget.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    MainWindow::MainWindow()
    {
    ..
    ...
    QFontMetrics QFm(this->font());
    MonLineEdit->setText(QFm.elidedText(mon_fichier),Qt::ElideLeft,MonLineEdit->width(),0));
    ...
    ..

  9. #9
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Dans ce cas, dérive une classe de QLineEdit où tu implémentes ce comportement en réimplémentant sizeEvent. Ensuite, tu utilises cette nouvelle classe au lieu de QLineEdit, et c'est marre

  10. #10
    Membre éprouvé Avatar de uriotcea
    Homme Profil pro
    Ingénieur / physicien
    Inscrit en
    Septembre 2003
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur / physicien
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2003
    Messages : 1 301
    Par défaut
    Merci, Je vais essayé, mais j'ai peur que le sizeEvent se comporte comme celui de MainWindows

  11. #11
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Citation Envoyé par uriotcea Voir le message
    Merci, Je vais essayé, mais j'ai peur que le sizeEvent se comporte comme celui de MainWindows
    Toute la beauté de la chose est que justement tu pourras l'ignorer totalement! Puisqu'il y a obligatoirement un sizeEvent géré lors de l'affichage, avec obligatoirement la bonne taille, tu passeras dedans, peu importe quand

    C'est la tout le but, et la beauté d'encapsuler les comportement spécifiques puisque la main window n'a pas à le savoir et que ce comportement est pûrement lié à ce widget.

  12. #12
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    SizeEvent??
    Ce ne serait pas plustôt SizeHint que vous parlez?

  13. #13
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Non, resizeEvent pour le mot complet
    Mais il a dû comprendre

  14. #14
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Est tu sur que cette fonction soit toujours appelé au début?

  15. #15
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Bah il me semble bien, mais un test c'est vite fait

  16. #16
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    Bah il me semble bien, mais un test c'est vite fait
    J'avais essayer d'utiliser cette méthode mais ça ne marchais pas très bien . Ca fait quelques temps et j'ai très bien pû faire n'importe quoi

  17. #17
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    J'avais essayer d'utiliser cette méthode mais ça ne marchais pas très bien . Ca fait quelques temps et j'ai très bien pû faire n'importe quoi
    Cadal, à compiler sans oublier CONFIG += console bien sûr
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    #include <QtGui>
     
    class MyButton: public QPushButton
    {
    protected:
        void resizeEvent(QResizeEvent *e)
        {
            QString size(QString("%1x%2").arg(e->size().width()).arg(e->size().height()));
            qDebug(qPrintable(size));
            QPushButton::resizeEvent(e);
        }
    };
     
    int main(int argc, char **argv)
    {
        QApplication app(argc, argv);
        MyButton *b = new MyButton;
        b->show();
        return app.exec();
    }
    edit: ajout de la taille dans la sortie quand même

  18. #18
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Faudrais que je retrouve ce que j'avais fait.
    C'était avec un QScrollArea je crois.
    Mais bon si t'es sur, je te croie

  19. #19
    Membre Expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Par défaut
    Citation Envoyé par Mongaulois Voir le message
    Faudrais que je retrouve ce que j'avais fait.
    C'était avec un QScrollArea je crois.
    Mais bon si t'es sur, je te croie
    QScrollArea, c'est "piège"; malheureusement, beaucoup de personnes ne font pas la différence entre le widget contenu, et le qscrollarea lui-même.

  20. #20
    yan
    yan est déconnecté
    Rédacteur
    Avatar de yan
    Homme Profil pro
    Ingénieur expert
    Inscrit en
    Mars 2004
    Messages
    10 035
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Ingénieur expert
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2004
    Messages : 10 035
    Par défaut
    Citation Envoyé par IrmatDen Voir le message
    QScrollArea, c'est "piège"; malheureusement, beaucoup de personnes ne font pas la différence entre le widget contenu, et le qscrollarea lui-même.
    C'était peut être ça.
    Il faudrait que je retrouve et vérifie l'exemple.
    Histoire de ne pas dire de bêtise

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. StringBuilder quand on connais pas la taille du string
    Par jayfaze dans le forum Langage
    Réponses: 6
    Dernier message: 05/08/2010, 14h30
  2. TK: zone de saisie widget Entry limiter taille textarea
    Par pinpin77 dans le forum Interfaces Graphiques
    Réponses: 6
    Dernier message: 26/01/2009, 14h42
  3. Calculer la taille finale d'une image ISO à partir du dossier source
    Par raoulchatigre dans le forum Applications et environnements graphiques
    Réponses: 3
    Dernier message: 05/09/2007, 21h20
  4. Réponses: 2
    Dernier message: 19/05/2007, 18h37
  5. Réponses: 4
    Dernier message: 01/02/2006, 11h17

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