Beefy Boxes and Bandwidth Generously Provided by pair Networks Cowboy Neal with Hat
Do you know where your variables are?
 
PerlMonks  

Re: Perl Tk -font option is not working in linux if the language is japanese

by zentara (Archbishop)
on Nov 06, 2012 at 18:11 UTC ( #1002551=note: print w/ replies, xml ) Need Help??


in reply to Perl Tk -font option is not working in linux if the language is japanese

I've hit that glitch before. Maybe try making a Tk::Font object. Try to make a small example which demonstrates the problem. This displays Japanese for me.

#!/usr/bin/perl use warnings; use strict; use Tk; my $mw=tkinit; $mw->fontCreate('big', -family=>'arial', -weight=>'bold', -size=> 38 ); my $string = "\x{65E5}\x{672C}\x{8A9E}\x{306E}\x{3072}\x{3089}\x{304C} +\x{306A}\x{6F22 }\x{5B57}\x{3068}\x{30AB}\x{30BF}\x{30AB}\x{30CA}"; my $label = $mw->Label(-bg => 'white', -text => $string, -font => 'big')->pack(); MainLoop;

I'm not really a human, but I play one on earth.
Old Perl Programmer Haiku ................... flash japh


Comment on Re: Perl Tk -font option is not working in linux if the language is japanese
Download Code
Re^2: Perl Tk -font option is not working in linux if the language is japanese
by LeonelMendoza (Initiate) on Nov 07, 2012 at 03:00 UTC
    Here's my code:
    my $label = $mw->Label(-bg => 'white', -text => $string, -font => "-adobe-helvetica-regular-r-normal-*-1 +2-*-*-*-*-*-*-*")->pack();

    I've tried english as the language when using linux, and instead of adobe helvetica that i specified it is using "Nimbus sans L" as its font. I've also tried font create but it's the same....

      First, do you actually have the adobe font that you're trying to use? On my system, it doesn't exist; however, I improvised and settled on this:
      #!/usr/bin/perl BEGIN { $| = 1; $^W = 1; } use strict; use warnings; use Tk; use Tk::X11Font; my $font = "-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859- +1"; my $mw = MainWindow->new; $mw->geometry('100x150'); my $label = $mw->Label( -bg => 'white', -text => "Help!", -font => \$font, )->pack; MainLoop;

        Yes, the font exists, Also i tried to copy fonts from the list the xlsfonts command provided, but it is still using "nimbus sans l". How do you get the real font? Here's my code to get the real font:

        #!/usr/bin/perl BEGIN { $| = 1; $^W = 1; } use strict; use warnings; use Tk; use Tk::X11Font; my $font = "-adobe-helvetica-bold-r-normal--12-120-75-75-p-70-iso8859- +1"; my $mw = MainWindow->new; $mw->geometry('100x150'); my $label = $mw->Label( -bg => 'white', -text => "Help!", -font => \$font, )->pack; my $realfont = $label->cget(-font); print join(" ", $label->fontActual($realfont)), "\n";

        Here's my software specification: CentOS Release 4.8 perltk 804.030 perl 5.8.5-builtin in CENTOS Please help me!

      Your code works for me here. I think you are missing the font you specified. This works, 2 labels shown, both Japanese, different fonts.
      #!/usr/bin/perl use warnings; use strict; use Tk; my $mw=tkinit; $mw->fontCreate('big', -family=>'arial', -weight=>'bold', -size=> 38 ); my $string = "\x{65E5}\x{672C}\x{8A9E}\x{306E}\x{3072}\x{3089}\x{304C} +\x{306A}\x{6F22 }\x{5B57}\x{3068}\x{30AB}\x{30BF}\x{30AB}\x{30CA}"; my $label = $mw->Label(-bg => 'white', -text => $string, -font => 'big')->pack(); my $label1 = $mw->Label(-bg => 'white', -text => $string, -font => "-adobe-helvetica-regular-r-normal-*-1 +2-*-*-*-*-*-*-*")->pack(); MainLoop;

      I'm not really a human, but I play one on earth.
      Old Perl Programmer Haiku ................... flash japh

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://1002551]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (5)
As of 2014-04-18 04:29 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    April first is:







    Results (461 votes), past polls