![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
GUIプログラミングを始めようと思い、Perlを少しかじっていることもあり、Perl/Tkを選びました。CentOS5にソース(Tk-804.027.tar.gz)からインストールを行い、オライリーの「入門Perl/Tk」に沿って勉強しています。
順調に各ウィジェットを使えていますが、Entryに関しては上手くいっていません。
以下のようなプログラムで問題が起こります。
01 #!/usr/bin/perl -w
02
03 use Tk;
04
05 $buffer = "";
06
07 $top = MainWindow->new();
08
09 $top->Entry( -textvariable => \$buffer )->pack();
10 $top->Button(-text => "EXIT", -command => sub { exit })->pack();
11 MainLoop;
状況としては、9行目で作成されるエントリが文字入力を受け付けてくれないのです。
しかし、10行目のボタンを作成するプログラムを削除すると入力を受け付けてくれます。
widgetコマンドで見られるサンプルも一部は入力できますが、すべてのエントリに入力できるものはありませんでした。
どなたか原因のわかる方、よろしくお願いします。
A 回答 (3件)
- 最新から表示
- 回答順に表示
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_14.png?e8efa67)
No.3
- 回答日時:
手当たり次第に試してみた方法ですが参考になれば。
環境変数のXMODIFIERが
XMODIFIERS="@im=SCIM"
となっていないでしょうか。
XMODIFIERS="@im=none"
に設定しなおして(export XMODIFIERS="@im=none")、perlを実行してみてください。
我が家のFedora8(Perl-5.10.0 Tk-804.028)でも同様の状態が起こりまして...
#!/usr/bin/perl
use Tk;
$mw = MainWindow->new();
$mw->Entry(-textvariable=>\$t1)->pack;
$mw->Entry(-textvariable=>\$t2)->pack;
MainLoop;
とすると、後のEntryには入力できますが先のEntryは入力できません。
これを上述のように変更すると入力できるようになりました。
たぶんSCIMを使わないシステムでは起こらないのでしょうね。
perlのbugですかね?仕様、だったりして。
No.2
- 回答日時:
Windows XP/ActivePerl と Ubuntu (6.06) で試しましたが、エラーが再現できないので解決策が提示できません・・・
同じことですが、
$top->Button(-text => "EXIT", -command => \&exit )->pack();
ともできます。
お役に立てずすみません。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Perl perlプログラミング 空白行削除 4 2023/01/28 17:58
- Perl Windows10においての『Perl』のプログラムについて 1 2022/05/09 16:04
- Perl perlでリテラル値はメモリにどのように格納されているか? 1 2023/01/15 20:45
- Perl perlをバージョンアップしたら、今まで正常に動いていたプログラムが、エラーになってしまった 3 2022/10/05 15:44
- CGI サイト訪問者の情報を取得したい 1 2023/02/21 11:03
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 2 2022/06/25 22:42
- CGI perlで書いたcgiでsqliteの使い方を教えてください 2 2023/05/08 21:29
- Visual Basic(VBA) 列と行の名前(重複あり)が交差するセルに、データを入力したい 3 2022/06/12 11:17
- Excel(エクセル) Excel2019 マクロを使用し画像を貼り付けした際のリンク切れについて 2 2022/11/15 16:14
- Perl perlについて 2 2022/11/18 19:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
「デバイスは PRN を初期化でき...
-
ActivePerlでWindows上のパスを...
-
PerlにてCPANを使用し、モジュ...
-
ユーザー定義関数に#NAME?が返...
-
VBAで別モジュールへの変数の受...
-
エクセルVBAでシートモジュール...
-
VBAで「メモリが不足しています」
-
Excel VBAでリンク切れをチェッ...
-
例外処理のフローチャートの記...
-
'Range'メソッドは失敗しました
-
Excel VBA 『Call』で呼び出す...
-
【ExcelVBA】commandButtonをク...
-
perlについて
-
本当にPublicな変数(配列で)
-
LCD ディスプレイを Raspberry ...
-
CGI::Carpを使っているのにInte...
-
VBAでoutlook365が起動しません。
-
VB2005ーDataGridViewの選択さ...
-
大量の標準モジュールを解放す...
-
Cからシェルを起動し返り値をハ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
「デバイスは PRN を初期化でき...
-
「Perl Command Line InterPret...
-
windows環境でのperlのパス
-
perlの1行目が#!/usr/bin/perl...
-
環境と言語のダブル?クロス開...
-
use strictが効かない (PERL)
-
ApacheがPerlを作動してくれな...
-
@のエスケープ
-
Perl5.8とPerl5.6は共存可能で...
-
#!/usr/local/bin/perlで命令が...
-
Perlの実行パスを自動で変更す...
-
Image::Magickで画像に文字を埋...
-
perl が 実行できない
-
bad interpreter:エラーについて
-
mac perl 5.10 インストール
-
「jcode.pl」というファイルは...
-
#!/usr/bin/perl --でも不安定です
-
activeperlでDBD-Pgを扱うと、p...
-
【超初心者】異なるディレクト...
-
perl初心者です。
おすすめ情報