User since
2008-11-12
2
Artikel
BenutzerIn
Hallo,
und schon mal weil Danke für Eure Hilfe.
Ich habe ein Fenster das im Prinzip zweigeteilt ist. Oben ein tree Widget und unten Einzelheiten zu dem angeklickten Eintrag. Wenn ich mit der Maus auf einen Anderen Eintrag klicke ändern sich unten die Informationen. soweit so gut.
Ich habe einen Knopf wen ich auf den drücke wird im Tree ein neuer Eintrag erzeugt. Diesen aktiviere ich durch selectionSet, anchorSet und see. Das funktioniert auch noch sehr gut. Nur was nicht geht ist mein Callback. Ich habe ein Callback browsecmd und commando, aber keines wird ausgeführt wenn ich mit selectionSet, anchorSet und see den tree Eintrag anwähle, die funktionieren nur wen ich mit der Maus einen Eintrag anwähle. Wie kann ich erreichen, dass ein Callback aufgerufen wird wenn das Programm selbst einen tree Eintrag anwählt, bzw. wie muß ich den Eintrag anspringen, dass mein browsecmd callback ausgeführt wird?
Ich hoffe ich habe meine Frage verständlich ausgedrückt und Ihr könnt mir helfen!
Gruß
Oli
User since
2003-08-04
14371
Artikel
ModeratorIn
Zeig bitte mal etwas Code...
User since
2008-11-12
2
Artikel
BenutzerIn
Hallo Renee,
da der Code inzwischen schon recht umfangreich ist hier die - wie ich hoffe - relevanten Stellen.
[...]
$OBrowser=$Browser_Frame->Scrolled('Tree',
-scrollbars => 'osoe',
#-drawbranch => 0,
#indicator => 0,
#indent => 15,
-selectmode => 'browse',
-height => 16,
-width => 150,
-header => 1,
-columns => 6,
-background => 'white'
)->pack(-expand => 1,
-fill => 'both',
-anchor => 'n'
);
[...]
$OBrowser->configure(-browsecmd => [ \&DispWork #, $OBrowser #, $_ #, $OBrowser,
#$StyleOK
]
);
$OBrowser->configure(-command => [ \&DispWork #, $OBrowser #, $_ #, $OBrowser,
#$StyleOK
]
);
[...]
$OBrowser->add($NewDir, -itemtype => 'imagetext', -image => $folderimage, -text => 'ASO:', -style => $StyleNormal);
$OBrowser->itemCreate($NewDir, 1, -text => $NewDir, -style => $StyleNormal);
$OBrowser->itemCreate($NewDir, 2, -text => $NewASO_Bez, -style => $StyleNormal);
$OBrowser->itemCreate($NewDir, 3, -text => "NEIN", -style => $StyleNOK);
$OBrowser->itemCreate($NewDir, 4, -text => "NEIN", -style => $StyleNOK);
$OBrowser->itemCreate($NewDir, 5, -text => DirSize($Dir_Path."/".$NewDir), -style => $StyleNormal);
$OBrowser->update;
$OBrowser->selectionClear($Path);
$OBrowser->selectionSet($NewDir);
$OBrowser->see($NewDir);
$OBrowser->anchorSet($NewDir);
Hilft Dir das?
Ich sitze da jetzt schon seit einer Woche dran und habe gegoogelt was das Zeug hält.
Gruß
Oli
User since
2003-08-07
2921
Artikel
BenutzerIn
Hallo!
Was ist das denn? Tk? Welche Version? Welches OS?
Reduziere mal dein Problem: erstelle eine neue Datei, in der du nur dein Tree-Widget verwendest und versuchst, ein callback zu realisieren.
Und, ich steige noch nicht so ganz durch deine Problembeschreibung durch.
Ich markiere also etwas in dem Baum, drücke einen Button und dann was?
Grüße, pktm
User since
2007-09-24
70
Artikel
BenutzerIn
Hallo,
hast du mal '->KeyboardActivate' nach dem anchorSet probiert?
ungetestet, Christoph