问:我想知道如何在主窗口中将结果显示在表格中

时间:2014-03-07 16:10:18

标签: qt tableview

我想知道如何在主窗口中向表格显示结果。

我的节目很简单;用户在两行编辑中输入两个数字,一旦用户单击运行按钮,它将显示用户输入的数字之间的所有奇数。我可以在文本浏览器中显示结果。

我在插槽功能中添加该行,然后在文本浏览器中显示结果:

ui->textbrowser->setText(QString(%1).arg(result));

如何在表格视图中显示结果?我可以创建表格,但我不知道应该用什么来在窗口中显示结果。

1 个答案:

答案 0 :(得分:0)

查看Qt的模型/视图教程

http://qt-project.org/doc/qt-4.8/modelview.html

从那里,一个例子(虽然它使用TreeView):

 // modelview.cpp
 #include <QTreeView>
 #include <QStandardItemModel>
 #include <QStandardItem>
 #include "mainwindow.h"

 const int ROWS = 2;
 const int COLUMNS = 3;

 MainWindow::MainWindow(QWidget *parent)
     : QMainWindow(parent)
 {
     treeView = new QTreeView(this);
     setCentralWidget(treeView);
     standardModel = new QStandardItemModel ;

     QList<QStandardItem *> preparedRow =prepareRow("first", "second", "third");
     QStandardItem *item = standardModel->invisibleRootItem();
     // adding a row to the invisible root item produces a root element
     item->appendRow(preparedRow);

     QList<QStandardItem *> secondRow =prepareRow("111", "222", "333");
     // adding a row to an item starts a subtree
     preparedRow.first()->appendRow(secondRow);

     treeView->setModel(standardModel);
     treeView->expandAll();
 }

 QList<QStandardItem *> MainWindow::prepareRow(const QString &first,
                                                 const QString &second,
                                                 const QString &third)
 {
     QList<QStandardItem *> rowItems;
     rowItems << new QStandardItem(first);
     rowItems << new QStandardItem(second);
     rowItems << new QStandardItem(third);
     return rowItems;
 }