2016-12-06 1 views
0

J'ai besoin d'imprimer le contenu d'un QStringListModel à une imprimante, dans 'void MainWindow :: on_pbImprime_clicked()' Il imprime n'importe quel Qstring sans problèmes, mais je ne sais pas comment mettre les données de QStringListModel à mon texte QString , Quelqu'un a une idée?Comment imprimer le contenu QStringListModel?

Voici mon code:

MainWindow::MainWindow(QWidget *parent) : 
    QMainWindow(parent), 
    ui(new Ui::MainWindow) 
{ 
    ui->setupUi(this); 

    model = new QStringListModel(this); 

    ui->lbItens->setModel(model); 

    ui->lbItens->setEditTriggers(QAbstractItemView::AnyKeyPressed | 
           QAbstractItemView::DoubleClicked); 
} 

MainWindow::~MainWindow() 
{ 
    delete ui; 
} 

void MainWindow::on_pbAdd_clicked() 
{ 
    int row = model->rowCount(); 

    model->insertRows(row,1); 

    QModelIndex index = model->index(row); 

    ui->lbItens->setCurrentIndex(index); 
    ui->lbItens->edit(index); 
} 

void MainWindow::on_pbRemove_clicked() 
{ 
    model->removeRows(ui->lbItens->currentIndex().row(),1); 
} 

void MainWindow::on_pbImprime_clicked() 
{ 
     QPrinter printer; 

     QPainter p(&printer); 
     int x_pos = 20; 
     int y_pos = 20; 

     int row = model->rowCount(); 
     int i; 

     for(i=0; i<row; i++){ 
      QString text = ; 
      p.drawText(x_pos, y_pos, text); 
      y_pos += p.fontMetrics().height(); 
     } 
} 

Désolé pour mon mauvais anglais et merci pour l'aide.

Répondre

1

Vous pouvez obtenir QStringList à partir de votre modèle:

QStringList list = model->stringList(); 

De QStringList obtenir votre QString en utilisant join():

QString str = list.join(" "); 

En join vous pouvez choisir le séparateur dont vous avez besoin.

1

Vous pouvez essayer cette

void MainWindow::on_pbImprime_clicked() 
{ 
    QPrinter printer; 

    ... 

    for(i=0; i<row; i++){ 
     QString text = model->data(model->index(row, 0)).toString(); 
     p.drawText(x_pos, y_pos, text); 
     y_pos += p.fontMetrics().height(); 
    } 
} 

En fait, les données :: QVariant QAbstractItemModel (const QModelIndex index &, le rôle int = Qt :: DisplayRole) const est la voie à preferred obtenir des données hors du modèle.