Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]12403[/thread]

TK: radiobutton im Menü auf "ausgewählt/select" setzen

Leser: 1


<< >> 5 Einträge, 1 Seite
frankes
 2008-08-26 04:21
#113989 #113989
User since
2005-04-02
140 Artikel
BenutzerIn

user image
Hallo,

Versuche hier gerade einen Radiobutton in einem Menü anzusprechen, so dass dieser ausgewählt wird.
Das Menü funktioniert so weit: Es geht nur um das ansprechen der (Radio-) Elemente im Menü per Script um diese aus- bzw. abzuwählen.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
        $button3 = $Menu->Menubutton(
                        '-text'                         =>'language',
                        '-padx'                         => 3,
                        '-tearoff'                              => 0,
                        '-background'                   => 'white',
                        '-foreground'                   => 'black',
                        '-activebackground'             => 'green',
                        '-activeforeground'             => 'black',
                        '-disabledforeground'   => 'gray'
                )
                ->pack(
                                '-side'         => 'left',
                                '-after'        => $Fmenu
                        );

        if (grep { $_ eq 'default'} keys %{$Conflang} ) {

                $cbdefault = $button3->radiobutton(
                                                        '-label'        => 'default',
                                                        '-command'      => \&setlang,
                                                        '-value'        => '',
                                                        '-variable'     => $Menulang,
                                                );


Da ein "$cbdefault->select()" in diesem Fall nicht funktioniert, bin ich etwas ratlos.



Danke im Voraus
styx-cc
 2008-08-26 11:08
#113990 #113990
User since
2006-05-20
533 Artikel
BenutzerIn

user image
Versuchs mal mit:
Code: (dl )
1
2
$radiobutton->select;
$radiobutton->deselect;


MfG

edit: hab das ende ueberlesen, sorry
Pörl.
frankes
 2008-08-26 13:56
#113996 #113996
User since
2005-04-02
140 Artikel
BenutzerIn

user image
Ne, wie gesagt geht nicht, da Tk::Menu die Objektmethode "select" nicht kennt.

Code (perl): (dl )
$cbdefault->select;


führt zu:

Code: (dl )
Can't locate object method "select" via package "Tk::Menu::Radiobutton" at Widget/Selectbox.pm line 212.
renee
 2008-08-26 14:13
#113997 #113997
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Setz mal $Menulang auf den Wert, den Du bei "value" bei dem entsprechen Radiobutton festgelegt hast!
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
frankes
 2008-08-26 15:41
#113999 #113999
User since
2005-04-02
140 Artikel
BenutzerIn

user image
Hallo reene

$Menulang war auf dem Radiobutton Wert. Funktionierte bei mir dennoch nicht.

Inzwischen habe ich eine Lösung über die Menu - Methode.

Also ein separates Menü mit einen normalen Button Element aufgerufen.

Hier kann man dann mit widget->invoke(x) das Menü Element auswählen.


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
...

        ### Language Menu


        $popuplang = $Btline->Menu(
                        '-tearoff'                              => 0,
                        '-background'                   => 'white',
                        '-foreground'                   => 'black',
                        '-activebackground'             => 'green',
                        '-activeforeground'             => 'black',
                        '-disabledforeground'          => 'gray'
                );


        if (grep { $_ eq 'default'} keys %{$Conflang} ) {



                $popuplang->add(
                                                        'radiobutton',
                                                        '-command'      => \&setlang,
                                                        '-label'                => 'default',
                                                        '-value'                => '',
                                                        '-variable'             => $Menulang,
                                                );
        }

        $popuplang->invoke(0) unless $Menulang;


        foreach $l (sort {$a cmp $b} keys %{$Conflang}) {
                next if $l eq 'default';

                $popuplang->add('radiobutton',
                                                '-command'      => \&setlang,
                                                '-label'        => $l,
                                                '-value'        => $l,
                                                '-variable'     => $Menulang
                                        );
    }


        $button3 = $Btline->Button(
                        '-command'              => \&poplang,
                        '-text'                 => "language",
                        '-padx'                 => 3,
                        '-relief'                       => 'groove',
                        '-borderwidth'          => 2
                )
                        ->pack(
                                        '-side'         => 'left',
                                        '-anchor'               => 'nw' 
                                );

}


#################### poplang ####################
# Language menu
sub poplang {
        $popuplang->Popup('-popover' => $button3, '-popanchor' => 'nw');
}

...



Dennoch wäre ich daran interessiert, wie man ein Element in einem mit dem Menubutton Objekt generierten Menü ansprechen kann, um dieses aus- bzw. abzuwählen.



Danke Reene
<< >> 5 Einträge, 1 Seite



View all threads created 2008-08-26 04:21.