diff options
Diffstat (limited to 'examples/listbox')
-rw-r--r-- | examples/listbox/listbox.cpp | 193 | ||||
-rw-r--r-- | examples/listbox/listbox.doc | 29 | ||||
-rw-r--r-- | examples/listbox/listbox.h | 47 | ||||
-rw-r--r-- | examples/listbox/listbox.pro | 11 | ||||
-rw-r--r-- | examples/listbox/main.cpp | 23 |
5 files changed, 303 insertions, 0 deletions
diff --git a/examples/listbox/listbox.cpp b/examples/listbox/listbox.cpp new file mode 100644 index 000000000..bf4049787 --- /dev/null +++ b/examples/listbox/listbox.cpp @@ -0,0 +1,193 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 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 "listbox.h" + +#include <qlabel.h> +#include <qradiobutton.h> +#include <qcheckbox.h> +#include <qspinbox.h> +#include <qlistbox.h> +#include <qbuttongroup.h> +#include <qlayout.h> +#include <qpushbutton.h> + + +ListBoxDemo::ListBoxDemo() + : TQWidget( 0, 0 ) +{ + TQGridLayout * g = new TQGridLayout( this, 2, 2, 6 ); + + g->addWidget( new TQLabel( "<b>Configuration:</b>", this ), 0, 0 ); + g->addWidget( new TQLabel( "<b>Result:</b>", this ), 0, 1 ); + + l = new TQListBox( this ); + g->addWidget( l, 1, 1 ); + l->setFocusPolicy( TQWidget::StrongFocus ); + + TQVBoxLayout * v = new TQVBoxLayout; + g->addLayout( v, 1, 0 ); + + TQRadioButton * b; + bg = new TQButtonGroup( 0 ); + + b = new TQRadioButton( "Fixed number of columns,\n" + "as many rows as needed.", + this ); + bg->insert( b ); + v->addWidget( b ); + b->setChecked( TRUE ); + connect( b, SIGNAL(clicked()), this, SLOT(setNumCols()) ); + TQHBoxLayout * h = new TQHBoxLayout; + v->addLayout( h ); + h->addSpacing( 30 ); + h->addSpacing( 100 ); + h->addWidget( new TQLabel( "Columns:", this ) ); + columns = new TQSpinBox( this ); + h->addWidget( columns ); + + v->addSpacing( 12 ); + + b = new TQRadioButton( "As many columns as fit on-screen,\n" + "as many rows as needed.", + this ); + bg->insert( b ); + v->addWidget( b ); + connect( b, SIGNAL(clicked()), this, SLOT(setColsByWidth()) ); + + v->addSpacing( 12 ); + + b = new TQRadioButton( "Fixed number of rows,\n" + "as many columns as needed.", + this ); + bg->insert( b ); + v->addWidget( b ); + connect( b, SIGNAL(clicked()), this, SLOT(setNumRows()) ); + h = new TQHBoxLayout; + v->addLayout( h ); + h->addSpacing( 30 ); + h->addSpacing( 100 ); + h->addWidget( new TQLabel( "Rows:", this ) ); + rows = new TQSpinBox( this ); + rows->setEnabled( FALSE ); + h->addWidget( rows ); + + v->addSpacing( 12 ); + + b = new TQRadioButton( "As many rows as fit on-screen,\n" + "as many columns as needed.", + this ); + bg->insert( b ); + v->addWidget( b ); + connect( b, SIGNAL(clicked()), this, SLOT(setRowsByHeight()) ); + + v->addSpacing( 12 ); + + TQCheckBox * cb = new TQCheckBox( "Variable-height rows", this ); + cb->setChecked( TRUE ); + connect( cb, SIGNAL(toggled(bool)), this, SLOT(setVariableHeight(bool)) ); + v->addWidget( cb ); + v->addSpacing( 6 ); + + cb = new TQCheckBox( "Variable-width columns", this ); + connect( cb, SIGNAL(toggled(bool)), this, SLOT(setVariableWidth(bool)) ); + v->addWidget( cb ); + + cb = new TQCheckBox( "Extended-Selection", this ); + connect( cb, SIGNAL(toggled(bool)), this, SLOT(setMultiSelection(bool)) ); + v->addWidget( cb ); + + TQPushButton *pb = new TQPushButton( "Sort ascending", this ); + connect( pb, SIGNAL( clicked() ), this, SLOT( sortAscending() ) ); + v->addWidget( pb ); + + pb = new TQPushButton( "Sort descending", this ); + connect( pb, SIGNAL( clicked() ), this, SLOT( sortDescending() ) ); + v->addWidget( pb ); + + v->addStretch( 100 ); + + int i = 0; + while( ++i <= 2560 ) + l->insertItem( TQString::fromLatin1( "Item " ) + TQString::number( i ), + i ); + columns->setRange( 1, 256 ); + columns->setValue( 1 ); + rows->setRange( 1, 256 ); + rows->setValue( 256 ); + + connect( columns, SIGNAL(valueChanged(int)), this, SLOT(setNumCols()) ); + connect( rows, SIGNAL(valueChanged(int)), this, SLOT(setNumRows()) ); +} + + +ListBoxDemo::~ListBoxDemo() +{ + delete bg; +} + + +void ListBoxDemo::setNumRows() +{ + columns->setEnabled( FALSE ); + rows->setEnabled( TRUE ); + l->setRowMode( rows->value() ); +} + + +void ListBoxDemo::setNumCols() +{ + columns->setEnabled( TRUE ); + rows->setEnabled( FALSE ); + l->setColumnMode( columns->value() ); +} + + +void ListBoxDemo::setRowsByHeight() +{ + columns->setEnabled( FALSE ); + rows->setEnabled( FALSE ); + l->setRowMode( TQListBox::FitToHeight ); +} + + +void ListBoxDemo::setColsByWidth() +{ + columns->setEnabled( FALSE ); + rows->setEnabled( FALSE ); + l->setColumnMode( TQListBox::FitToWidth ); +} + + +void ListBoxDemo::setVariableWidth( bool b ) +{ + l->setVariableWidth( b ); +} + + +void ListBoxDemo::setVariableHeight( bool b ) +{ + l->setVariableHeight( b ); +} + +void ListBoxDemo::setMultiSelection( bool b ) +{ + l->clearSelection(); + l->setSelectionMode( b ? TQListBox::Extended : TQListBox::Single ); +} + +void ListBoxDemo::sortAscending() +{ + l->sort( TRUE ); +} + +void ListBoxDemo::sortDescending() +{ + l->sort( FALSE ); +} diff --git a/examples/listbox/listbox.doc b/examples/listbox/listbox.doc new file mode 100644 index 000000000..eefc2a4d3 --- /dev/null +++ b/examples/listbox/listbox.doc @@ -0,0 +1,29 @@ +/* +*/ +/*! \page listbox-example.html + + \ingroup examples + \title Listbox Example + + This example shows how to use the different modes (single columns, multiple columns, + fixed number of rows, etc.) of QListBox. + + <hr> + + Header file: + + \include listbox/listbox.h + + <hr> + + Implementation: + + \include listbox/listbox.cpp + + <hr> + + Main: + + \include listbox/main.cpp +*/ + diff --git a/examples/listbox/listbox.h b/examples/listbox/listbox.h new file mode 100644 index 000000000..62cd8c82f --- /dev/null +++ b/examples/listbox/listbox.h @@ -0,0 +1,47 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 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 LISTBOX_H +#define LISTBOX_H + + +class TQSpinBox; +class TQListBox; +class TQButtonGroup; + +#include <qwidget.h> + + +class ListBoxDemo: public TQWidget +{ + Q_OBJECT +public: + ListBoxDemo(); + ~ListBoxDemo(); + +private slots: + void setNumRows(); + void setNumCols(); + void setRowsByHeight(); + void setColsByWidth(); + void setVariableWidth( bool ); + void setVariableHeight( bool ); + void setMultiSelection( bool ); + void sortAscending(); + void sortDescending(); + +private: + TQListBox * l; + TQSpinBox * columns; + TQSpinBox * rows; + TQButtonGroup * bg; +}; + + +#endif diff --git a/examples/listbox/listbox.pro b/examples/listbox/listbox.pro new file mode 100644 index 000000000..b65571a47 --- /dev/null +++ b/examples/listbox/listbox.pro @@ -0,0 +1,11 @@ +TEMPLATE = app +TARGET = listbox + +CONFIG += qt warn_on release +DEPENDPATH = ../../include + +REQUIRES = large-config + +HEADERS = listbox.h +SOURCES = listbox.cpp \ + main.cpp diff --git a/examples/listbox/main.cpp b/examples/listbox/main.cpp new file mode 100644 index 000000000..0e3c7ad3b --- /dev/null +++ b/examples/listbox/main.cpp @@ -0,0 +1,23 @@ +/**************************************************************************** +** +** Copyright (C) 1992-2008 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 "listbox.h" +#include <qapplication.h> + +int main( int argc, char **argv ) +{ + TQApplication a( argc, argv ); + + ListBoxDemo t; + t.setCaption( "TQt Example - Listbox" ); + a.setMainWidget( &t ); + t.show(); + + return a.exec(); +} |