<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
< html >
< head >
< meta http-equiv = "Content-Type" content = "text/html; charset=ISO-8859-1" >
< title > Buttons and Groupboxes< / title >
< style type = "text/css" > < ! - -
fn { margin-left: 1cm; text-indent: -1cm; }
a:link { color: #004faf; text-decoration: none }
a:visited { color: #672967; text-decoration: none }
body { background: #ffffff; color: black; }
-->< / style >
< / head >
< body >
< table border = "0" cellpadding = "0" cellspacing = "0" width = "100%" >
< tr bgcolor = "#E5E5E5" >
< td valign = center >
< a href = "index.html" >
< font color = "#004faf" > Home< / font > < / a >
| < a href = "classes.html" >
< font color = "#004faf" > All Classes< / font > < / a >
| < a href = "mainclasses.html" >
< font color = "#004faf" > Main Classes< / font > < / a >
| < a href = "annotated.html" >
< font color = "#004faf" > Annotated< / font > < / a >
| < a href = "groups.html" >
< font color = "#004faf" > Grouped Classes< / font > < / a >
| < a href = "functions.html" >
< font color = "#004faf" > Functions< / font > < / a >
< / td >
< td align = "right" valign = "center" > < img src = "logo32.png" align = "right" width = "64" height = "32" border = "0" > < / td > < / tr > < / table > < h1 align = center > Buttons and Groupboxes< / h1 >
< p >
This example shows different types of groupboxes (buttongroups, etc.) and
different kinds of buttons (checkboxes, radiobuttons, pushbuttons, etc.).
< p > < hr >
< p > Header file:
< p > < pre > /****************************************************************************
** $Id: qt/buttongroups.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 BUTTONS_GROUPS_H
#define BUTTONS_GROUPS_H
#include < < a href = "tqwidget-h.html" > tqwidget.h< / a > >
class TQCheckBox;
class TQRadioButton;
class ButtonsGroups : public < a href = "tqwidget.html" > TQWidget< / a >
{
< a href = "metaobjects.html#TQ_OBJECT" > TQ_OBJECT< / a >
public:
ButtonsGroups( < a href = "tqwidget.html" > TQWidget< / a > *parent = 0, const char *name = 0 );
protected:
< a href = "tqcheckbox.html" > TQCheckBox< / a > *state;
< a href = "tqradiobutton.html" > TQRadioButton< / a > *rb21, *rb22, *rb23;
protected slots:
void slotChangeGrp3State();
};
#endif
< / pre >
< p > < hr >
< p > Implementation:
< p > < pre > /****************************************************************************
** $Id: qt/buttongroups.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 "buttongroups.h"
#include < < a href = "tqpopupmenu-h.html" > tqpopupmenu.h< / a > >
#include < < a href = "tqbuttongroup-h.html" > tqbuttongroup.h< / a > >
#include < < a href = "tqlayout-h.html" > tqlayout.h< / a > >
#include < < a href = "tqradiobutton-h.html" > tqradiobutton.h< / a > >
#include < < a href = "tqcheckbox-h.html" > tqcheckbox.h< / a > >
#include < < a href = "tqgroupbox-h.html" > tqgroupbox.h< / a > >
#include < < a href = "tqpushbutton-h.html" > tqpushbutton.h< / a > >
/*
* Constructor
*
* Creates all child widgets of the ButtonGroups window
*/
< a name = "f261" > < / a > ButtonsGroups::ButtonsGroups( < a href = "tqwidget.html" > TQWidget< / a > *parent, const char *name )
: < a href = "tqwidget.html" > TQWidget< / a > ( parent, name )
{
// Create Widgets which allow easy layouting
< a href = "tqvboxlayout.html" > TQVBoxLayout< / a > *vbox = new < a href = "tqvboxlayout.html" > TQVBoxLayout< / a > ( this, 11, 6 );
< a href = "tqhboxlayout.html" > TQHBoxLayout< / a > *box1 = new < a href = "tqhboxlayout.html" > TQHBoxLayout< / a > ( vbox );
< a href = "tqhboxlayout.html" > TQHBoxLayout< / a > *box2 = new < a href = "tqhboxlayout.html" > TQHBoxLayout< / a > ( vbox );
// ------- first group
// Create an exclusive button group
< a href = "tqbuttongroup.html" > TQButtonGroup< / a > *bgrp1 = new < a href = "tqbuttongroup.html" > TQButtonGroup< / a > ( 1, TQGroupBox::Horizontal, "Button Group 1 (exclusive)", this);
box1-> < a href = "tqboxlayout.html#addWidget" > addWidget< / a > ( bgrp1 );
< a name = "x549" > < / a > bgrp1-> < a href = "tqbuttongroup.html#setExclusive" > setExclusive< / a > ( TRUE );
// insert 3 radiobuttons
< a href = "tqradiobutton.html" > TQRadioButton< / a > *rb11 = new < a href = "tqradiobutton.html" > TQRadioButton< / a > ( "& Radiobutton 1", bgrp1 );
< a name = "x559" > < / a > rb11-> < a href = "tqradiobutton.html#setChecked" > setChecked< / a > ( TRUE );
(void)new < a href = "tqradiobutton.html" > TQRadioButton< / a > ( "R& adiobutton 2", bgrp1 );
(void)new < a href = "tqradiobutton.html" > TQRadioButton< / a > ( "Ra& diobutton 3", bgrp1 );
// ------- second group
// Create a non-exclusive buttongroup
< a href = "tqbuttongroup.html" > TQButtonGroup< / a > *bgrp2 = new < a href = "tqbuttongroup.html" > TQButtonGroup< / a > ( 1, TQGroupBox::Horizontal, "Button Group 2 (non-exclusive)", this );
box1-> < a href = "tqboxlayout.html#addWidget" > addWidget< / a > ( bgrp2 );
bgrp2-> < a href = "tqbuttongroup.html#setExclusive" > setExclusive< / a > ( FALSE );
// insert 3 checkboxes
(void)new < a href = "tqcheckbox.html" > TQCheckBox< / a > ( "& Checkbox 1", bgrp2 );
< a href = "tqcheckbox.html" > TQCheckBox< / a > *cb12 = new < a href = "tqcheckbox.html" > TQCheckBox< / a > ( "C& heckbox 2", bgrp2 );
< a name = "x552" > < / a > cb12-> < a href = "tqcheckbox.html#setChecked" > setChecked< / a > ( TRUE );
< a href = "tqcheckbox.html" > TQCheckBox< / a > *cb13 = new < a href = "tqcheckbox.html" > TQCheckBox< / a > ( "Triple & State Button", bgrp2 );
< a name = "x553" > < / a > cb13-> < a href = "tqcheckbox.html#setTristate" > setTristate< / a > ( TRUE );
cb13-> < a href = "tqcheckbox.html#setChecked" > setChecked< / a > ( TRUE );
// ------------ third group
// create a buttongroup which is exclusive for radiobuttons and non-exclusive for all other buttons
< a href = "tqbuttongroup.html" > TQButtonGroup< / a > *bgrp3 = new < a href = "tqbuttongroup.html" > TQButtonGroup< / a > ( 1, TQGroupBox::Horizontal, "Button Group 3 (Radiobutton-exclusive)", this );
box2-> < a href = "tqboxlayout.html#addWidget" > addWidget< / a > ( bgrp3 );
< a name = "x550" > < / a > bgrp3-> < a href = "tqbuttongroup.html#setRadioButtonExclusive" > setRadioButtonExclusive< / a > ( TRUE );
// insert three radiobuttons
rb21 = new < a href = "tqradiobutton.html" > TQRadioButton< / a > ( "Rad& iobutton 1", bgrp3 );
rb22 = new < a href = "tqradiobutton.html" > TQRadioButton< / a > ( "Radi& obutton 2", bgrp3 );
rb23 = new < a href = "tqradiobutton.html" > TQRadioButton< / a > ( "Radio& button 3", bgrp3 );
rb23-> < a href = "tqradiobutton.html#setChecked" > setChecked< / a > ( TRUE );
// insert a checkbox...
state = new < a href = "tqcheckbox.html" > TQCheckBox< / a > ( "E& nable Radiobuttons", bgrp3 );
state-> < a href = "tqcheckbox.html#setChecked" > setChecked< / a > ( TRUE );
// ...and connect its TQ_SIGNAL clicked() with the TQ_SLOT slotChangeGrp3State()
< a href = "tqobject.html#connect" > connect< / a > ( state, TQ_SIGNAL( < a href = "tqbutton.html#clicked" > clicked< / a > () ), this, TQ_SLOT( slotChangeGrp3State() ) );
// ------------ fourth group
// create a groupbox which layouts its childs in a columns
< a href = "tqgroupbox.html" > TQGroupBox< / a > *bgrp4 = new < a href = "tqbuttongroup.html" > TQButtonGroup< / a > ( 1, TQGroupBox::Horizontal, "Groupbox with normal buttons", this );
box2-> < a href = "tqboxlayout.html#addWidget" > addWidget< / a > ( bgrp4 );
// insert four pushbuttons...
(void)new < a href = "tqpushbutton.html" > TQPushButton< / a > ( "& Push Button", bgrp4, "push" );
// now make the second one a toggle button
< a href = "tqpushbutton.html" > TQPushButton< / a > *tb2 = new < a href = "tqpushbutton.html" > TQPushButton< / a > ( "& Toggle Button", bgrp4, "toggle" );
< a name = "x558" > < / a > tb2-> < a href = "tqpushbutton.html#setToggleButton" > setToggleButton< / a > ( TRUE );
< a name = "x556" > < / a > tb2-> < a href = "tqpushbutton.html#setOn" > setOn< / a > ( TRUE );
// ... and make the third one a flat button
< a href = "tqpushbutton.html" > TQPushButton< / a > *tb3 = new < a href = "tqpushbutton.html" > TQPushButton< / a > ( "& Flat Button", bgrp4, "flat" );
< a name = "x555" > < / a > tb3-> < a href = "tqpushbutton.html#setFlat" > setFlat< / a > (TRUE);
// .. and the fourth a button with a menu
< a href = "tqpushbutton.html" > TQPushButton< / a > *tb4 = new < a href = "tqpushbutton.html" > TQPushButton< / a > ( "Popup Button", bgrp4, "popup" );
< a href = "tqpopupmenu.html" > TQPopupMenu< / a > *menu = new < a href = "tqpopupmenu.html" > TQPopupMenu< / a > (tb4);
menu-> < a href = "tqmenudata.html#insertItem" > insertItem< / a > ("Item1", 0);
menu-> < a href = "tqmenudata.html#insertItem" > insertItem< / a > ("Item2", 1);
menu-> < a href = "tqmenudata.html#insertItem" > insertItem< / a > ("Item3", 2);
menu-> < a href = "tqmenudata.html#insertItem" > insertItem< / a > ("Item4", 3);
< a name = "x557" > < / a > tb4-> < a href = "tqpushbutton.html#setPopup" > setPopup< / a > (menu);
}
/*
* TQ_SLOT slotChangeGrp3State()
*
* enables/disables the radiobuttons of the third buttongroup
*/
void < a name = "f262" > < / a > ButtonsGroups::slotChangeGrp3State()
{
< a name = "x560" > < / a > < a name = "x551" > < / a > rb21-> < a href = "tqwidget.html#setEnabled" > setEnabled< / a > ( state-> < a href = "tqcheckbox.html#isChecked" > isChecked< / a > () );
rb22-> < a href = "tqwidget.html#setEnabled" > setEnabled< / a > ( state-> < a href = "tqcheckbox.html#isChecked" > isChecked< / a > () );
rb23-> < a href = "tqwidget.html#setEnabled" > setEnabled< / a > ( state-> < a href = "tqcheckbox.html#isChecked" > isChecked< / a > () );
}
< / pre >
< p > < hr >
< p > Main:
< pre > /****************************************************************************
** $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 "buttongroups.h"
#include < < a href = "qapplication-h.html" > ntqapplication.h< / a > >
int main( int argc, char **argv )
{
< a href = "ntqapplication.html" > TQApplication< / a > a( argc, argv );
ButtonsGroups buttonsgroups;
buttonsgroups.< a href = "tqwidget.html#resize" > resize< / a > ( 500, 250 );
buttonsgroups.< a href = "tqwidget.html#setCaption" > setCaption< / a > ( "TQt Example - Buttongroups" );
a.< a href = "ntqapplication.html#setMainWidget" > setMainWidget< / a > ( & buttonsgroups );
buttonsgroups.< a href = "tqwidget.html#show" > show< / a > ();
return a.< a href = "ntqapplication.html#exec" > exec< / a > ();
}
< / pre >
< p > See also < a href = "examples.html" > Examples< / a > .
<!-- eof -->
< p > < address > < hr > < div align = center >
< table width = 100% cellspacing = 0 border = 0 > < tr >
< td > Copyright © 2007
< a href = "troll.html" > Trolltech< / a > < td align = center > < a href = "trademarks.html" > Trademarks< / a >
< td align = right > < div align = right > TQt 3.3.8< / div >
< / table > < / div > < / address > < / body >
< / html >