【问题标题】:How do I print QStringListModel content?如何打印 QStringListModel 内容?
【发布时间】:2016-12-06 17:41:24
【问题描述】:

我需要将 QStringListModel 的内容打印到打印机,在 'void MainWindow::on_pbImprime_clicked()' 它打印任何 Qstring 都没有问题,但我不知道如何将 QStringListModel 的数据放入我的 QString文字,有人有想法吗?

这是我的代码:

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();
        }
}

对不起,我的英语不好,感谢您的帮助。

【问题讨论】:

    标签: c++ qt qstring qprinter qstringlistmodel


    【解决方案1】:

    您可以从您的模型中获取QStringList

    QStringList list = model->stringList();
    

    QStringList 使用join() 获取您的QString

    QString str = list.join(" ");
    

    join你可以选择你需要的分隔符。

    【讨论】:

      【解决方案2】:

      或者,你可以试试这个

      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();
          }
      }
      

      事实上, QVariant QAbstractItemModel::data(const QModelIndex & index, int role = Qt::DisplayRole) const 是从模型中获取数据的首选方式。

      【讨论】:

        猜你喜欢
        • 2021-08-15
        • 1970-01-01
        • 2019-08-29
        • 2021-07-04
        • 2014-06-04
        • 2020-09-08
        • 2020-04-13
        • 2020-08-26
        • 1970-01-01
        相关资源
        最近更新 更多