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

Discussion :

Transformer un QTextLength en entier

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Par défaut Transformer un QTextLength en entier
    Bonjour,

    Comme l'indique le titre, j'aimerais transformer un QTextLength en int
    En fait je suis dans un QTextEdit et le curseur se trouve sur un tableau qui a un with de 200px
    j'aimerais retrouver ce width et le mettre dans un spin box.
    Voici mon code actuel

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    QTextCursor curseur = ui->txt_page_1->textCursor(); // Récupération du QTextCursor de la zone de texte
     
        if(curseur.currentTable()){
            QTextTable *table = curseur.currentTable();
            QTextTableFormat  format = table->format();
            QTextLength t = format.width();
            ui->spinBox_4->setValue(t);
        }
    Et l'erreur causé

    error: no matching function for call to 'QSpinBox::setValue(QTextLength&)'
    candidates are: void QSpinBox::setValue(int)

    Mais je n'arrive pas à avoir un int de width ....

    Merci par avance à tous

  2. #2
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    C'est vraiment spécifique à Qt comme question, j'ai l'ai déplacée dans le forum approprié.

    En jetant un œil sur la doc, il semblerait que cette longueur soit une spécification plus qu'une mesure, et une telle spécification peut être une taille fixe, une taille variable... En plus, dans Qt, les longueurs sont des flottants, et non des entiers, afin d'avoir une meilleur précision (particulièrement lors de zooms...)

    Si tu es certain d'être en présence d'une taille fixe, et que tu veux vraiment un entier, tu dois pouvoir écrire un code comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    assert(t.type() == QTextLength::FixedLength);
    int intVal = static_cast<int>(t.rawValue());
    Si tu veux quelque chose de plus subtil, il te faudra attendre la réponse de quelqu'un dont la dernière expérience Qt date de moins de 7 ans
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Par défaut
    Merci pour la réponse, j'essaierais ça se soir

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    65
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 65
    Par défaut
    Ca fonctionne
    Merci beaucoup par contre le assert(t.type() == QTextLength::FixedLength); provoque une erreur si je le laisse
    Voir PJ

    Que pense tu de cette erreur.

    PS j'ai un autre sujet que j'ai posté ce matin, si tu pouvais m'apporter ton savoir, ça m'aiderai énormément

    http://www.developpez.net/forums/d12...t/#post6840509

    Merci encore
    Images attachées Images attachées  

  5. #5
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    J'en pense que la taille du tableau n'est pas fixe, mais variable, et donc que l'information retournée par rawValue n'est pas à considérer comme bonne. Peut-être qu'elle a l'air correcte par exemple tant que tu ne réduits pas la taille de la fenêtre, mais qu'à un moment, ça changera.

    Mais comme je l'ai dit, je ne connais pas du tout ces classes ni leur comportement, et je pense qu'il vaudrait mieux que quelqu'un d'autre te réponde.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

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

Discussions similaires

  1. Transformer un réel en entier dans une macro ImageJ
    Par bourique dans le forum ImageJ
    Réponses: 0
    Dernier message: 06/08/2010, 15h14
  2. Comment transformer une date en entier ?
    Par benfatpatra dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 14/11/2008, 17h45
  3. Transformer un entier en minute - TimeSerial
    Par Mariboo dans le forum Access
    Réponses: 2
    Dernier message: 04/08/2006, 10h57
  4. fonction qui transforme un entier en octet
    Par personne64 dans le forum C
    Réponses: 43
    Dernier message: 10/05/2006, 15h36
  5. [debutant]transform chaine en entier
    Par loutente dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 07/03/2005, 10h53

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