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:
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;
}
} |