The complete code for this example program can be found in <QICSTABLE>/examples/QicsHello.
These are the main QicsTable header files.
#include <QicsTable.h> #include <QicsDataModelDefault.h>
Some standard Qt initialization code here...
#include <qapplication.h> #include <qlabel.h> int main(int argc, char *argv[]) { QApplication app(argc,argv);
Now let's create the data model. QicsDataModelDefault is the standard data model class.
// dimensions of the data model int numRows = 10; int numCols = 5; // create the data model QicsDataModel *dm = new QicsDataModelDefault(numRows, numCols);
Now that we have a data model object, let's populate it with some data. Using the QicsDataInt class constructor we are creating a new integer data item with value (i*j). This item is immediately inserted into the data model using setItem() .
// populate the data model with some data int i, j; for (i = 0; i < numRows; i++) { for (j = 0; j < numCols; j++) { dm->setItem(i, j, QicsDataInt(i*j)); } }
Alternatively, we could have used a different, overloaded version of setItem() that takes an integer as an argument instead of a QicsDataItem object. There are several different overloads of this method for different types of data.
The data model is ready, so now we can create the table widget. Here, we pass the data model to the QicsTable constructor.
Alternatively, we could have created the table widget without a data model and set it later using setdataModel() .
By default, the table widget will size itself big enough to display 10 rows and 10 columns. In this case, we'd like to make the table just big enough to display all the data in the model, so we call setVisibleRows() and setVisibleColumns() .
// make sure the table is only as large as necessary table->setVisibleRows(numRows); table->setVisibleColumns(numCols);
Now, let's add a title above the table. QicsTable allows the programmer to place any widget in any of eight locations in the table (top, bottom, left, right, and the four corners). Here, we use setTopTitleWidget() to place a label widget.
// Add a title widget to the top of the table QLabel *label = new QLabel(QString("Hello World, Table"), table); label->setAlignment(Qt::AlignCenter); table->setTopTitleWidget(label);
That's all the table-specific code. All that's left to do is set the application's main widget, show the table, and enter the application event loop.
app.setMainWidget(table);
table->show();
return app.exec();
}
When the program is executed, you should see the following: