• Antelope Release 5.9 Mac OS X 10.13.2 2019-05-01

 

NAME

BQDbTableview - BRTT Qt graphics class for displaying datascope database data in a table

SYNOPSIS


-lbqplot -lbanner -lbrttutil $(DBLIBS)

#include "BQ.h"

DESCRIPTION

BQDbTableview objects are used to display datascope database data in tables using the BQTableview(3) class.

This class inherits the BQConfigure class which is itself a subclass of the BUConfigure class with extensions to process Qt colors and fonts. The configure methods are implemented in the BUConfigure parent (see BUConfigure(3)).

This class also inherits the BQTableview(3) class. The virtual BQTableview::callback method is implemented in this class. This class will show static database tables and views. There is no editing support. This class is meant as a simple display for selecting single rows for further processing.

INHERITS FROM

BQTableview, BQConfigure

CONSTRUCTOR

BQDbTableview(QWidget *parent, Dbptr db);

Where "parent" is the QWidget parent for this object and db is the database table or view to display.

METHODS INHERITED FROM BQConfigure

BQDbTableview METHODS

OBJECT CONFIGURATION PARAMETERS

EXAMPLE

Following is a simple c++ example.


#include "BQ.h"

class MyDbTableview : public BQDbTableview {
public:
    MyDbTableview (QWidget *parent, Dbptr db) : BQDbTableview (parent, db) {}

protected:
    void selectionCallback (int &row) {
        printf ("Selection record %d\n", row);
    }
};

int
main (int argc, char **argv)

{
    char *dbname = "/opt/antelope/data/db/demo/demo";

    Dbptr db = dbinvalid();
    if (dbopen (dbname, (char *)"r", &db) < 0) {
        fprintf (stderr, "bqplot_test_dbtableview: dbopen(%s) error\n", dbname);
        exit (1);
    }

    db = dblookup (db, 0, (char *)"origin", 0, 0);
    Dbptr dba = dblookup (db, 0, (char *)"assoc", 0, 0);
    db = dbjoin (db, dba, 0, 0, 0, 0, 0);
    dba = dblookup (db, 0, (char *)"arrival", 0, 0);
    db = dbjoin (db, dba, 0, 0, 0, 0, 0);

    QApplication qapp(argc, argv);

    qapp.setApplicationName("bqplot_test_dbtableview");

    QWidget *widget = new QWidget();
    widget->setWindowTitle("bqplot_test_dbtableview");
    widget->show();
    widget->resize (800, 400);

    QGridLayout *layout = new QGridLayout (widget);
    layout->setSpacing (0);
    layout->setContentsMargins (0, 0, 0, 0);
    widget->setLayout (layout);

    char *column_names = (char *)"\
    column_names &Tbl{\n\
        time\n\
        lat\n\
        lon\n\
        depth\n\
        ml\n\
        sta\n\
        iphase\n\
    }\n";

    char *column_definitions = (char *)"\
    column_definitions &Arr{\n\
        time &Arr{\n\
            label time\n\
            text_template XXXXXXXXXXXXXXXXXXXXXX\n\
            source epoch2str(time,\"%Y%j:%T\")\n\
        }\n\
        lat &Arr{\n\
            label lat\n\
            text_template XXXXXXXXXX\n\
            source lat\n\
            sort lat\n\
            alignment e\n\
            format %.3lf\n\
        }\n\
        lon &Arr{\n\
            label lon\n\
            text_template XXXXXXXXXX\n\
            source lon\n\
            sort lon\n\
            alignment e\n\
            format %.3lf\n\
        }\n\
        depth &Arr{\n\
            label depth\n\
            text_template XXXXXXXX\n\
            source depth\n\
            sort depth\n\
            alignment e\n\
            format %.2lf\n\
        }\n\
        ml &Arr{\n\
            label ml\n\
            text_template XXXXXXX\n\
            source ml\n\
            sort ml\n\
            alignment e\n\
            format %.2lf\n\
        }\n\
        sta &Arr{\n\
            label sta\n\
            text_template XXXXXXX\n\
            source sta\n\
        }\n\
        iphase &Arr{\n\
            label iphase\n\
            text_template XXXXXXX\n\
            source iphase\n\
        }\n\
    }\n";

    MyDbTableview *dbtv = new MyDbTableview(widget, db);
    dbtv->configure (
        "column_names", column_names,
        "column_definitions", column_definitions,
        "color_hover", "magenta",
        "font", "courier,18",
        "font_header", "arial,14,Normal",
        "default_hover_interaction", "no",
        "show_record_numbers", "yes",
        NULL);
    layout->addWidget (dbtv, 0, 0, 1, 1);

    int width, height;
    dbtv->totalSize (width, height);
    width += 18;
    height += 18;
    if (width > 2000) width = 2000;
    if (height > 2000) height = 2000;
    widget->resize (width, height);
    widget->setMaximumWidth (width);
    widget->setMaximumHeight (height);

    qapp.exec();

    exit (0);
}


SEE ALSO

bqplot(3), BQConfigure(3), BQTableview(3), dbex_eval(3), dbexpressions(5), dbsort(3)

AUTHOR

Danny Harvey, BRTT
Printer icon