2013-07-17 2 views
1

Я использую Perl и Tk для отображения окна с изображениями внутри. Он циклически перемещается по изображениям на белом фоне, черном фоне, изображении (1280x800), повторяется. Проблема в том, что мне нужно иметь возможность просматривать весь образ. Tk накладывает 2-пиксельную границу поверх изображений, включая черно-белые фоны. Вот мой код ...Невозможно удалить границу из окна Tk

use Tk; 

# Create and configure the canvas: 
my $canvas = $mw->Canvas(-cursor=>"crosshair", -background=>"black", 
       -width=>1280, -height=>800)->pack(); 
my $canvasWidth = 1280; 
my $canvasHeight = 800; 
my $blackRect = $canvas->createRectangle(0,0,$canvasWidth,$canvasHeight, -fill => "black", -tags => ['blackRect']); 
my $whiteRect = $canvas->createRectangle(0,0,$canvasWidth,$canvasHeight, -fill => "white", -tags => ['whiteRect']); 

# create a Photo object and one Button then we will reuse it. 
my $shot = $canvas->Photo(); 
my $image = $canvas->createImage(0,0, -image => $shot, -anchor => "nw", -tags => ['image']); 

# Remove the borders 
$mw->overrideredirect(1); 

# Loop through images 

Я знаю, что overrideredirect избавляется от большинства лишних вещей, но она до сих пор не дает мне голого окна. Я попытался добавить -borderwidth=>0 к созданию холста, и он ничего не меняет.

Граница появляется сразу и никогда не исчезает, а не только при отображении первого изображения.

Here is a screenshot of the border on an image

Может ли эта граница будет удалена? Если да, то как?

ответ

3

Добавить

-highlightthickness => 0 

к Canvas вызова. Это приведет к удалению границы, которая используется для отображения текущего фокусного виджета.

+0

Ницца! Это сработало! Спасибо! – MattDavBen

+1

Для акцента. Вы видите эффект, если у вас есть два или более виджета и используйте клавишу , чтобы перемещать фокус. –