| Home | All Classes | Main Classes | Annotated | Grouped Classes | Functions |  | 
This example shows how to use the different modes (single columns, multiple columns, fixed number of rows, etc.) of TQListBox.
Header file:
/****************************************************************************
** $Id: qt/listbox.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 LISTBOX_H
#define LISTBOX_H
class TQSpinBox;
class TQListBox;
class TQButtonGroup;
#include <tqwidget.h>
class ListBoxDemo: public TQWidget
{
    TQ_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
Implementation:
/****************************************************************************
** $Id: qt/listbox.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 "listbox.h"
#include <tqlabel.h>
#include <tqradiobutton.h>
#include <tqcheckbox.h>
#include <tqspinbox.h>
#include <tqlistbox.h>
#include <tqbuttongroup.h>
#include <tqlayout.h>
#include <tqpushbutton.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, TQ_SIGNAL(clicked()), this, TQ_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, TQ_SIGNAL(clicked()), this, TQ_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, TQ_SIGNAL(clicked()), this, TQ_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, TQ_SIGNAL(clicked()), this, TQ_SLOT(setRowsByHeight()) );
    v->addSpacing( 12 );
    TQCheckBox * cb = new TQCheckBox( "Variable-height rows", this );
    cb->setChecked( TRUE );
    connect( cb, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(setVariableHeight(bool)) );
    v->addWidget( cb );
    v->addSpacing( 6 );
    cb = new TQCheckBox( "Variable-width columns", this );
    connect( cb, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(setVariableWidth(bool)) );
    v->addWidget( cb );
    cb = new TQCheckBox( "Extended-Selection", this );
    connect( cb, TQ_SIGNAL(toggled(bool)), this, TQ_SLOT(setMultiSelection(bool)) );
    v->addWidget( cb );
    TQPushButton *pb = new TQPushButton( "Sort ascending", this );
    connect( pb, TQ_SIGNAL( clicked() ), this, TQ_SLOT( sortAscending() ) );
    v->addWidget( pb );
    pb = new TQPushButton( "Sort descending", this );
    connect( pb, TQ_SIGNAL( clicked() ), this, TQ_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, TQ_SIGNAL(valueChanged(int)), this, TQ_SLOT(setNumCols()) );
    connect( rows, TQ_SIGNAL(valueChanged(int)), this, TQ_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 );
}
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 "listbox.h"
#include <tqapplication.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();
}
See also Examples.
| Copyright © 2007 Trolltech | Trademarks | TQt 3.3.8 |