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 :

Problème d'affichage dans QTableView

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut Problème d'affichage dans QTableView
    Bonjour,
    j'ai de problème en affichage
    mon travail est de lecture un fichier txt ligne par ligne et d'afficher le contenu de fichier dans un tableau ligne par ligne dans premier colonne et nbr de caractère dans la deuxièmes colonne
    le problem ce que en affichage je reçus tout le texte de fichier en meme ligne de tableau mais je doit affichier en tableau ligne par ligne avec nbr de caracteres .
    aider moi svp c'est mon code :



    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
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    #include "mainwindow.h"
    #include "ui_mainwindow.h"
    #include <QtGui>
    #include <QFileDialog>
    #include <iostream>
    #include <QString>
    #include <qlistview>
     
    using namespace std;
    QString code;
    QString cap;
    int info;
     
    MainWindow::MainWindow(QWidget *parent) :
        QMainWindow(parent),
        ui(new Ui::MainWindow)
    {
        ui->setupUi(this);
     
    }
     
    MainWindow::~MainWindow()
    {
        delete ui;
    }
     
    void MainWindow::on_pushButton_clicked()
    {
     
        QString filename = QFileDialog::getOpenFileName(
                    this,
                    tr("Open file"),
                    QDir::currentPath(),
                    tr("Document File(*.doc *txt)") );
        if(!filename.isNull()){
            qDebug (filename.toAscii());
        }
       ui->lineEdit->setText(filename);
     
     
       QFile file(filename);
            if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
                return;
     int nbLignes = 0 ;
     
            QTextStream in(&file);
            while (!in.atEnd()) {
                QString line = in.readLine() + "\n" ;
     
                code += line;
     
     
                  nbLignes++ ;
                  file.close();
     
                string::size_type cap;
                   cap = line.capacity();
     
     
                   model = new QStandardItemModel(nbLignes,2,this);
                                  ui->tableView->setModel(model);
     
     
                                  for(int row=0 ; row< nbLignes ; ++row)
     
                                  {
     
                                    int  col=0 ;
     
                                          QModelIndex index = model->index(row,col,QModelIndex());
     
                                          model->setData(index,code);
     
                                      col=1;
     
                                QModelIndex ind = model->index(row,col,QModelIndex());
                                model->setData(ind,line.size()-1);
     
                   }
     
     
     
     
           ui->label->setNum(nbLignes);
     
     
     
     
     cout  <<"  : " << line.size()-1 << endl;
     
            }
     
     
    }

  2. #2
    Invité
    Invité(e)
    Par défaut
    Bonjour,

    ...Si je me base,sur ce que tu as écrit...,je pense que la source de l'erreur ,serait à cette partie du programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    while(!in.atEnd()){ 
     
    (...)
     
    file.close ;
    bool QTextStream::atEnd () const ,utilisé avec l'objet "in" n'est pas selon moi,
    l'instruction que tu devrais utilisé,car elle ne permet pas de limiter précisement le nombre de mots ou caractére par lignes...
    Les instructions que tu pourrais utilisés, pour séparer ou limiter le nombre de caractéres par ligne, sont :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    QString QString::left ( int n ) const
    QString QString::right ( int n ) const
    QString QString::mid ( int position, int n = -1 ) const

    Voici quelques liens directes et utilisables :


    http://qt.developpez.com/doc/4.7/qtextstream/#atend

    http://qt.developpez.com/doc/4.7/qstring/#left

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    Je suis débutant et je n'ai pas compris ta réponse si tu peut m'aider en code pour utiliser votre astuce et aussi l'affichage de tableau de contenu de fichier ligne par ligne

  4. #4
    Invité
    Invité(e)
    Par défaut
    ...
    Désolé... ,je ne peux pas faire ton programme à ta place...Mais ,je peux te donnez un exemple d' utilisation, d'une des instructions que je t'ai donnés précédemment.
    Voici un programme (ou bout de programme) en exemple compilable :

    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
    21
    22
    #include <QTextStream>
    #include <QString>
    #include <QApplication>
    int main(int argc,char ** argv)
    {   QApplication app(argc,argv) ;
    //sans retour a la ligne dans l editeur de texte
    QString paragraf = "mot1 mot2 mot2 mot3 mot4 mot5 mot6 mot7 mot8 mot9 mot10 mot11 mot12 mot13 mot14 mot15 mot16 mot17 mot18 mot19 mot20 mot21 mot22 mot23 mot24 mot25 mot26 mot27 mot28 mot29 mot30 mot31 mot32 mot33 mt34 mot35" ;
     
    QString caractrs = "abcdefghijklmopqrstuvwxyz0123456789aaaaaaaaaabbbbbbbbb" ;
    QTextStream ccout(stdout) ;
    int val1 = 0 ;
    while(val1 < paragraf.size())
    {   ccout << paragraf.mid(val1,28) << endl ;
    val1+=28 ;
    }
    int val2 = 0 ;
    while(val2 < caractrs.size())
    {   ccout << caractrs.mid(val2,10) << endl ;
    val2+=10 ;
    }
    app.exit() ;
    }

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2011
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Mars 2011
    Messages : 3
    Par défaut
    merci pour vous aider je veux travailler avec ses méthodes

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/04/2006, 23h06
  2. Problème d'affichage dans un tableau
    Par claralavraie dans le forum ASP
    Réponses: 13
    Dernier message: 21/12/2005, 16h45
  3. [JSTL] Problème d'affichage dans un <c:forEach>
    Par zwck dans le forum Taglibs
    Réponses: 6
    Dernier message: 05/11/2005, 22h35
  4. Problème d'affichage dans un composant TScrollBox
    Par erossi dans le forum Composants VCL
    Réponses: 3
    Dernier message: 14/09/2005, 12h29
  5. [débutant]problèmes d'affichage dans un tableau
    Par Hastur dans le forum Balisage (X)HTML et validation W3C
    Réponses: 12
    Dernier message: 16/08/2005, 13h00

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