0
私は、Perl Win32 :: GUIを使用してデスクトップアプリケーションを開発しています。その中で私は状態識別のためにProgress Barを使用しています。 私はプログレスバーの最大レベルを100として設定しました。その長さごとに値を上げています。 私は以下のサンプルコードを書いています。私は100を入力長に割ることによって、ステップアップ値を計算しています。その場合、入力の長さが奇数の場合、ステップ値は浮動小数点になります。したがって、プログレスバーは最大レベルを完全には完了しませんでした。 例として、長さが11の場合、ステップアップ値は9.09になります。 プログレスバーには9と表示されます。したがって、進捗レベルは99のセグメントしか完了しません。あなたの提案を教えてください。プログレスバーステップアップPerl Win32 :: GUI
use strict;
use Win32;
use Win32::GUI;
my $DOS = Win32::GUI::GetPerlWindow();
Win32::GUI::Hide($DOS);
my $Upload_win=Win32::GUI::Window->new(
-name => 'UploadWindow',
-text => 'SVN-CHIP-Upload-Tool-V2-HurixSystems',
-left => 375,
-top => 400,
-width =>520,#370,
-height =>520,
#-menu =>$Menu,
-background => [190,190,190],
-dialogui => 1,
-maximizebox => 0,
);
my $ProcessButton=$Upload_win->AddButton(
-text => 'Upload',
-name => 'uploadbut',
-size => [90,25],
-pos => [200,360],
-background => [190,190,190],
-foreground => [],
-tabstop => 1,
);
my $Progress_bars=$Upload_win->AddProgressBar(
-pos=>[20,400],
-background=>[0,255,85],
-smooth => 1,
-size=>[470,20],
);
$Upload_win->Show();
Win32::GUI::Dialog();
Win32::GUI::Hide($DOS);
sub uploadbut_Click{
$Progress_bars->SetRange(0,100);
my $x=11;
my $y=100/$x;
for(1..$x){
Win32::GUI::DoEvents() >= 0;
$Progress_bars->SetStep($y);
$Progress_bars->StepIt();
sleep 1;
}
}