summaryrefslogtreecommitdiffstats
path: root/PerlTQt/examples/buttongroups/ButtonsGroups.pm
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-01 18:29:30 -0600
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2012-01-01 18:29:30 -0600
commitb2af005db21bd8fd068cb79b2ae700953128af2c (patch)
treeabd0ed633726bf0bbecb57d30e92836c31e02695 /PerlTQt/examples/buttongroups/ButtonsGroups.pm
parentc1b9383f2032d82db5eb8918dca885e37a901dde (diff)
downloadlibtqt-perl-b2af005db21bd8fd068cb79b2ae700953128af2c.tar.gz
libtqt-perl-b2af005db21bd8fd068cb79b2ae700953128af2c.zip
Move PerlQt
Diffstat (limited to 'PerlTQt/examples/buttongroups/ButtonsGroups.pm')
-rw-r--r--PerlTQt/examples/buttongroups/ButtonsGroups.pm104
1 files changed, 104 insertions, 0 deletions
diff --git a/PerlTQt/examples/buttongroups/ButtonsGroups.pm b/PerlTQt/examples/buttongroups/ButtonsGroups.pm
new file mode 100644
index 0000000..106cf1b
--- /dev/null
+++ b/PerlTQt/examples/buttongroups/ButtonsGroups.pm
@@ -0,0 +1,104 @@
+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;