From d796c9dd933ab96ec83b9a634feedd5d32e1ba3f Mon Sep 17 00:00:00 2001 From: Timothy Pearson Date: Tue, 8 Nov 2011 12:31:36 -0600 Subject: Test conversion to TQt3 from Qt3 8c6fc1f8e35fd264dd01c582ca5e7549b32ab731 --- doc/html/statistics-example.html | 304 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 304 insertions(+) create mode 100644 doc/html/statistics-example.html (limited to 'doc/html/statistics-example.html') diff --git a/doc/html/statistics-example.html b/doc/html/statistics-example.html new file mode 100644 index 000000000..dc6b75913 --- /dev/null +++ b/doc/html/statistics-example.html @@ -0,0 +1,304 @@ + + + + + +Table Example + + + + + + + +
+ +Home + | +All Classes + | +Main Classes + | +Annotated + | +Grouped Classes + | +Functions +

Table Example

+ + +

+Another TQTable example. +


+

Header file: +

/****************************************************************************
+** $Id: qt/statistics.h   3.3.8   edited Jan 11 14:37 $
+**
+** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
+**
+** This file is part of an example program for TQt.  This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#ifndef STATISTICS_H
+#define STATISTICS_H
+
+#include <qtable.h>
+#include <qcombobox.h>
+
+class TableItem : public TQTableItem
+{
+public:
+    TableItem( TQTable *t, EditType et, const TQString &txt ) : TQTableItem( t, et, txt ) {}
+    void paint( TQPainter *p, const TQColorGroup &cg, const TQRect &cr, bool selected );
+};
+
+class ComboItem : public TQTableItem
+{
+public:
+    ComboItem( TQTable *t, EditType et );
+    TQWidget *createEditor() const;
+    void setContentFromEditor( TQWidget *w );
+    void setText( const TQString &s );
+
+private:
+    TQComboBox *cb;
+
+};
+
+class Table : public TQTable
+{
+    Q_OBJECT
+
+public:
+    Table();
+    void sortColumn( int col, bool ascending, bool wholeRows );
+
+private slots:
+    void recalcSum( int row, int col );
+
+private:
+    void initTable();
+
+};
+
+#endif
+
+ +


+

Implementation: +

/****************************************************************************
+** $Id: qt/statistics.cpp   3.3.8   edited Jan 11 14:37 $
+**
+** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
+**
+** This file is part of an example program for TQt.  This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#include "statistics.h"
+
+#include <qdir.h>
+#include <qstringlist.h>
+#include <qheader.h>
+#include <qcombobox.h>
+#include <stdlib.h>
+
+const char* dirs[] = {
+    "kernel",
+    "tools",
+    "widgets",
+    "dialogs",
+    "xml",
+    "table",
+    "network",
+    "opengl",
+    "canvas",
+    0
+};
+
+Table::Table()
+    : TQTable( 10, 100, 0, "table" )
+{
+    setSorting( TRUE );
+    horizontalHeader()->setLabel( 0, tr( "File" ) );
+    horizontalHeader()->setLabel( 1, tr( "Size (bytes)" ) );
+    horizontalHeader()->setLabel( 2, tr( "Use in Sum" ) );
+    initTable();
+    adjustColumn( 0 );
+
+    // if the user edited something we might need to recalculate the sum
+    connect( this, SIGNAL( valueChanged( int, int ) ),
+             this, SLOT( recalcSum( int, int ) ) );
+}
+
+void Table::initTable()
+{
+    // read all the TQt source and header files into a list
+    TQStringList all;
+    int i = 0;
+    TQString srcdir( "../../../src/" );
+    while ( dirs[ i ] ) {
+        TQDir dir( srcdir + dirs[ i ] );
+        TQStringList lst = dir.entryList( "*.cpp; *.h" );
+        for ( TQStringList::Iterator it = lst.begin(); it != lst.end(); ++it ) {
+            if ( ( *it ).contains( "moc" ) )
+                continue;
+            all << (TQString( dirs[ i ] ) + "/" + *it);
+        }
+        ++i;
+    }
+
+    // set the number of rows we'll need for the table
+    setNumRows( all.count() + 1 );
+    i = 0;
+    int sum = 0;
+
+    // insert the data into the table
+    for ( TQStringList::Iterator it = all.begin(); it != all.end(); ++it ) {
+        setText( i, 0, *it );
+        TQFile f( srcdir + *it );
+        setText( i, 1, TQString::number( (ulong)f.size() ) );
+        ComboItem *ci = new ComboItem( this, TQTableItem::WhenCurrent );
+        setItem( i++, 2, ci );
+        sum += f.size();
+    }
+
+    // last row should show the sum
+    TableItem *i1 = new TableItem( this, TQTableItem::Never, tr( "Sum" ) );
+    setItem( i, 0, i1 );
+    TableItem *i2 = new TableItem( this, TQTableItem::Never, TQString::number( sum ) );
+    setItem( i, 1, i2 );
+}
+
+void Table::recalcSum( int, int col )
+{
+    // only recalc if a value in the second or third column changed
+    if ( col < 1 || col > 2 )
+        return;
+
+    // recalc sum
+    int sum = 0;
+    for ( int i = 0; i < numRows() - 1; ++i ) {
+        if ( text( i, 2 ) == "No" )
+            continue;
+        sum += text( i, 1 ).toInt();
+    }
+
+    // insert calculated data
+    TableItem *i1 = new TableItem( this, TQTableItem::Never, tr( "Sum" ) );
+    setItem( numRows() - 1, 0, i1 );
+    TableItem *i2 = new TableItem( this, TQTableItem::Never, TQString::number( sum ) );
+    setItem( numRows() - 1, 1, i2 );
+}
+
+void Table::sortColumn( int col, bool ascending, bool /*wholeRows*/ )
+{
+    // sum row should not be sorted, so get rid of it for now
+    clearCell( numRows() - 1, 0 );
+    clearCell( numRows() - 1, 1 );
+    // do sort
+    TQTable::sortColumn( col, ascending, TRUE );
+    // re-insert sum row
+    recalcSum( 0, 1 );
+}
+
+
+
+void TableItem::paint( TQPainter *p, const TQColorGroup &cg, const TQRect &cr, bool selected )
+{
+    TQColorGroup g( cg );
+    // last row is the sum row - we want to make it more visible by
+    // using a red background
+    if ( row() == table()->numRows() - 1 )
+        g.setColor( TQColorGroup::Base, red );
+    TQTableItem::paint( p, g, cr, selected );
+}
+
+
+
+
+ComboItem::ComboItem( TQTable *t, EditType et )
+    : TQTableItem( t, et, "Yes" ), cb( 0 )
+{
+    // we do not want this item to be replaced
+    setReplaceable( FALSE );
+}
+
+TQWidget *ComboItem::createEditor() const
+{
+    // create an editor - a combobox in our case
+    ( (ComboItem*)this )->cb = new TQComboBox( table()->viewport() );
+    TQObject::connect( cb, SIGNAL( activated( int ) ), table(), SLOT( doValueChanged() ) );
+    cb->insertItem( "Yes" );
+    cb->insertItem( "No" );
+    // and initialize it
+    cb->setCurrentItem( text() == "No" ? 1 : 0 );
+    return cb;
+}
+
+void ComboItem::setContentFromEditor( TQWidget *w )
+{
+    // the user changed the value of the combobox, so synchronize the
+    // value of the item (its text), with the value of the combobox
+    if ( w->inherits( "TQComboBox" ) )
+        setText( ( (TQComboBox*)w )->currentText() );
+    else
+        TQTableItem::setContentFromEditor( w );
+}
+
+void ComboItem::setText( const TQString &s )
+{
+    if ( cb ) {
+        // initialize the combobox from the text
+        if ( s == "No" )
+            cb->setCurrentItem( 1 );
+        else
+            cb->setCurrentItem( 0 );
+    }
+    TQTableItem::setText( s );
+}
+
+ +


+

Main: +

/****************************************************************************
+** $Id: qt/main.cpp   3.3.8   edited Jan 11 14:37 $
+**
+** Copyright (C) 1992-2007 Trolltech ASA.  All rights reserved.
+**
+** This file is part of an example program for TQt.  This example
+** program may be used, distributed and modified without limitation.
+**
+*****************************************************************************/
+
+#include "statistics.h"
+#include <qapplication.h>
+int main( int argc, char **argv )
+{
+    TQApplication a(argc,argv);
+
+    Table t;
+    a.setMainWidget( &t );
+    t.show();
+    return a.exec();
+}
+
+ +

See also Table Examples. + + +


+ +
Copyright © 2007 +TrolltechTrademarks +
TQt 3.3.8
+
+ -- cgit v1.2.1