2012-09-17 2 views
0

한 번의 클릭으로 Tk :: HList의 항목을 선택하면이 항목 주위에 점선이 그려집니다. 나는이 선을 갖고 싶지 않다. 어떻게 구성 할 수 있습니까? 문서화 된 방법은 없습니다.Tk :: HList에서 선택 항목의 점선을 제거하려면 어떻게합니까?

다음은 미리 선택된 항목이있는 Tk :: HList를 보여주는 몇 가지 예제 코드입니다. 항목을 클릭하면 점선이 나타납니다.

#!perl 

use strict; 
use warnings; 
use utf8; 
use Tk; 
use Tk::HList; 

my $mw = tkinit(); 

# -- create a Tk::HList 
my $scrolled_hlist = $mw->Scrolled('HList', 
    -scrollbars => 'se', 
    -columns => 2, 
    -header => 1, 
    -width => 50, 
    -height => 20, 
    # hide black border around HList when it's active 
    -highlightthickness => 0, 
    -selectborderwidth => 1, 
    -selectmode => 'single', 

)->pack(-fill => 'y', -expand => 1,); 

my $real_hlist = $scrolled_hlist->Subwidget('scrolled'); 


# -- add HList header colums 
$real_hlist->header(
    'create', 0, 
    -text => 'first column', 
); 

$real_hlist->header(
    'create', 1, 
    -text => 'second column', 
); 


# -- add some entries to the HList 
$real_hlist->add(1); 
$real_hlist->item('create', 1, 0, -text => 'first row, 1st col'); 
$real_hlist->item('create', 1, 1, -text => 'first row, 2nd col'); 

$real_hlist->add(2); 
$real_hlist->item('create', 2, 0, -text => '2nd row, 1st col'); 
$real_hlist->item('create', 2, 1, -text => 'second row, 2nd col'); 


# -- set selection *** without dashed line border *** 
$real_hlist->selectionSet(2); 

$mw->MainLoop(); 
exit(0); 

답변

1

그것은 그것을 찾기 위해 시간이 좀 걸렸지 만,이 솔루션은 browsecmd로 anchorClear()를 호출하는 것입니다

#!perl 

use strict; 
use warnings; 
use utf8; 
use Tk; 
use Tk::HList; 

my $mw = tkinit(); 

# -- create a Tk::HList 
my $scrolled_hlist = $mw->Scrolled('HList', 
    -scrollbars => 'se', 
    -columns => 2, 
    -header => 1, 
    -width => 50, 
    -height => 20, 
    # hide black border around HList when it's active 
    -highlightthickness => 0, 
    -selectborderwidth => 1, 
    -selectmode => 'single', 
)->pack(-fill => 'y', -expand => 1,); 

my $real_hlist = $scrolled_hlist->Subwidget('scrolled'); 
$real_hlist->configure(
    -browsecmd => [ sub{ $_[0]->anchorClear(); }, $real_hlist], 
); 

# -- add HList header colums 
$real_hlist->header(
    'create', 0, 
    -text => 'first column', 
); 

$real_hlist->header(
    'create', 1, 
    -text => 'second column', 
); 


# -- add some entries to the HList 
$real_hlist->add(1); 
$real_hlist->item('create', 1, 0, -text => 'first row, 1st col'); 
$real_hlist->item('create', 1, 1, -text => 'first row, 2nd col'); 

$real_hlist->add(2); 
$real_hlist->item('create', 2, 0, -text => '2nd row, 1st col'); 
$real_hlist->item('create', 2, 1, -text => 'second row, 2nd col'); 


# -- set selection *** without dashed line border *** 
$real_hlist->selectionSet(2); 

$mw->MainLoop(); 
exit(0); 

출처 : https://groups.google.com/d/topic/comp.lang.perl.tk/iCE7ql2Bw4E/discussion

관련 문제