You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			105 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Perl
		
	
			
		
		
	
	
			105 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Perl
		
	
package ButtonsGroups;
 | 
						|
use strict;
 | 
						|
use TQt;
 | 
						|
use TQt::isa qw(TQt::Widget);
 | 
						|
use TQt::slots
 | 
						|
	slotChangeGrp3State => [];
 | 
						|
use TQt::attributes qw(
 | 
						|
	state
 | 
						|
	rb21
 | 
						|
	rb22
 | 
						|
	rb23
 | 
						|
);
 | 
						|
 | 
						|
#
 | 
						|
# Constructor
 | 
						|
#
 | 
						|
# Creates all child widgets of the ButtonGroups window
 | 
						|
#
 | 
						|
 | 
						|
sub NEW {
 | 
						|
    shift->SUPER::NEW(@_);
 | 
						|
 | 
						|
    # Create Widgets which allow easy layouting
 | 
						|
    my $vbox = TQt::VBoxLayout(this);
 | 
						|
    my $box1 = TQt::HBoxLayout($vbox);
 | 
						|
    my $box2 = TQt::HBoxLayout($vbox);
 | 
						|
 | 
						|
    # ------- first group
 | 
						|
 | 
						|
    # Create an exclusive button group
 | 
						|
    my $bgrp1 = TQt::ButtonGroup(1, &Horizontal, "Button Group &1 (exclusive)", this);
 | 
						|
    $box1->addWidget($bgrp1);
 | 
						|
    $bgrp1->setExclusive(1);
 | 
						|
 | 
						|
    # insert 3 radiobuttons
 | 
						|
    TQt::RadioButton("R&adiobutton 2", $bgrp1);
 | 
						|
    TQt::RadioButton("Ra&diobutton 3", $bgrp1);
 | 
						|
 | 
						|
    # ------- second group
 | 
						|
 | 
						|
    # Create a non-exclusive buttongroup
 | 
						|
    my $bgrp2 = TQt::ButtonGroup(1, &Horizontal, "Button Group &2 (non-exclusive)", this);
 | 
						|
    $box1->addWidget($bgrp2);
 | 
						|
    $bgrp2->setExclusive(0);
 | 
						|
 | 
						|
    # insert 3 checkboxes
 | 
						|
    TQt::CheckBox("&Checkbox 1", $bgrp2);
 | 
						|
    my $cb12 = TQt::CheckBox("C&heckbox 2", $bgrp2);
 | 
						|
    $cb12->setChecked(1);
 | 
						|
    my $cb13 = TQt::CheckBox("Triple &State Button", $bgrp2);
 | 
						|
    $cb13->setTristate(1);
 | 
						|
    $cb13->setChecked(1);
 | 
						|
 | 
						|
    # ----------- third group
 | 
						|
 | 
						|
    # create a buttongroup which is exclusive for radiobuttons and non-exclusive for all other buttons
 | 
						|
    my $bgrp3 = TQt::ButtonGroup(1, &Horizontal, "Button Group &3 (Radiobutton-exclusive)", this);
 | 
						|
    $box2->addWidget($bgrp3);
 | 
						|
    $bgrp3->setRadioButtonExclusive(1);
 | 
						|
 | 
						|
    # insert three radiobuttons
 | 
						|
    rb21 = TQt::RadioButton("Rad&iobutton 1", $bgrp3);
 | 
						|
    rb22 = TQt::RadioButton("Radi&obutton 2", $bgrp3);
 | 
						|
    rb23 = TQt::RadioButton("Radio&button 3", $bgrp3);
 | 
						|
    rb23->setChecked(1);
 | 
						|
 | 
						|
    # insert a checkbox
 | 
						|
    state = TQt::CheckBox("E&nable Radiobuttons", $bgrp3);
 | 
						|
    state->setChecked(1);
 | 
						|
    # ...and connect its TQT_SIGNAL clicked() with the TQT_SLOT slotChangeGrp3State()
 | 
						|
    this->connect(state, TQT_SIGNAL('clicked()'), TQT_SLOT('slotChangeGrp3State()'));
 | 
						|
 | 
						|
    # ----------- fourth group
 | 
						|
 | 
						|
    # create a groupbox which layouts its childs in a columns
 | 
						|
    my $bgrp4 = TQt::ButtonGroup(1, &Horizontal, "Groupbox with &normal buttons", this);
 | 
						|
    $box2->addWidget($bgrp4);
 | 
						|
 | 
						|
    # insert three pushbuttons...
 | 
						|
    TQt::PushButton("&Push Button", $bgrp4);
 | 
						|
    my $tb2 = TQt::PushButton("&Toggle Button", $bgrp4);
 | 
						|
    my $tb3 = TQt::PushButton("&Flat Button", $bgrp4);
 | 
						|
 | 
						|
    # ... and make the second one a toggle button
 | 
						|
    $tb2->setToggleButton(1);
 | 
						|
    $tb2->setOn(1);
 | 
						|
 | 
						|
    # ... and make the third one a flat button
 | 
						|
    $tb3->setFlat(1);
 | 
						|
}
 | 
						|
 | 
						|
#
 | 
						|
# TQT_SLOT slotChangeGrp3State()
 | 
						|
#
 | 
						|
# enables/disables the radiobuttons of the third buttongroup
 | 
						|
#
 | 
						|
 | 
						|
sub slotChangeGrp3State {
 | 
						|
    rb21->setEnabled(state->isChecked);
 | 
						|
    rb22->setEnabled(state->isChecked);
 | 
						|
    rb23->setEnabled(state->isChecked);
 | 
						|
}
 | 
						|
 | 
						|
1;
 |