IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Interfaces Graphiques Perl Discussion :

Perl Tk Chaînes arabes dans un Scrolled Text


Sujet :

Interfaces Graphiques Perl

  1. #21
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    En passant par le code unicode, peut-être que ça fonctionne mieux :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use Tk;
     
    my $fenetre_principale = MainWindow->new( -title => 'Text' );
    my $widget_texte = $fenetre_principale->Text( )->pack( );
    $widget_texte->insert('end', "1 : Ligne 1 : exemple\n");
    $widget_texte->insert('end', "2 : Ligne 2 : exemple\n");
     
    $widget_texte->tagConfigure('gras',
    	-font => '{Traditional Arabic} 24 {bold}', 
      -justify => 'right',
    );
    $widget_texte->insert('end', "\x{FE94}\x{FEF4}\x{FE91}\x{FEAE}\x{FECC}\x{FEDF}\x{FE8D}\x{FE94}\x{FEE4}\x{FEE0}\x{FEDC}\x{FEDF}\x{FE8D}", 'gras');
    # affiche le tout
    print 'Tout : ',$widget_texte->get('1.0', 'end');  # affiche tout
     
    my $bouton_selection = $fenetre_principale->Button( 
      -text => 'affichez selection',
      -command => sub {
        print $widget_texte->getSelected,"\n";
      },  
    )->pack();
     
     
    MainLoop;

  2. #22
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Oui là c'est parfait, la chaîne est correctement cadrée et n'est pas modifiée lorsqu'on clique dessus !

    Mais dans un scrolled, est-ce que ça fonctionne ?
    Car dans une Listbox c'est déjà correct en utf8...

  3. #23
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    J'ai répondu un peu vite.
    J'ai inclus la chaine dans un scrolled et c'est CORRECT !!!

    Bon reste à trouver l'éditeur qui permet de sauvegarder en unicode, ou faire une conversion...

    Déjà MERCI

  4. #24
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Faut plutôt chercher comment convertir l'arabe en unicode hexa

  5. #25
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Effectivement

    j'ai fait un essai avec des chaines sauvegardées en unicode avec Notepad :

  6. #26
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Voici un autre code où j'essaye d'afficher le code source de la page de Debian arabe : http://www.debian.org/index.ar.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use Tk;
    use utf8; 
    use Encode;
     
    use LWP::UserAgent;
    my $ua = LWP::UserAgent->new;
    my $req = HTTP::Request->new(POST => 'http://www.debian.org/index.ar.html');
    my $res = $ua->request($req);
    my $fenetre_principale = MainWindow->new( -title => 'Text - arabe' );
    my $widget_texte = $fenetre_principale->Scrolled('Text', 
      -scrollbars => 'se',
      -wrap => 'none',
    )->pack( qw/ -expand 1 -fill both / );
    $widget_texte->insert('end', "1 : Ligne 1 : exemple\n");
    $widget_texte->insert('end', "2 : Ligne 2 : exemple\n");
     
    $widget_texte->tagConfigure('gras',
    	-font => '{Traditional Arabic} 18 {bold}', 
      #-justify => 'right',
    );
     
    if ($res->is_success) {
      $widget_texte->insert('end', decode( 'utf-8', $res->content), 'gras');
    }
     
    MainLoop;
    Je ne comprends pas l'arabe mais je suis septique au rendu car le texte arabe ne semble pas correspondre à celui de la page. non ?

  7. #27
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Citation Envoyé par dmganges Voir le message
    Effectivement

    j'ai fait un essai avec des chaines sauvegardées en unicode avec Notepad :

  8. #28
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Non même pas comme disent les gamins !!!

    en plus quand on clique dans les chaînes elles sont désorganisées :
    Vois là où il y a le curseur clavier y a foutoir

  9. #29
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    ce qui est bizarre, c'est que nous n'avons pas le même affichage.
    Dans l'image à gauche, c'est chez toi, à droite chez moi. Moi le clic ne perturbe rien, mais l'arabe affiché me semble incorrect et toi c'est l'inverse.

    Je suis sous XP, je testerai ce soir sous Vista.
    Images attachées Images attachées  

  10. #30
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Effectivement chez moi les phrases sont correctes mais si on clique dessus c'est pas bon.

    Chez toi vu que les caractères sont tous séparés, il n'y a pas désorganisation de la phrase.

    C'est un pot de pue !

    N'y passe pas la nuit !!!
    Encore une fois : seulement si tu as du temps et MERCI !!!

  11. #31
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Je viens de tester sous un Vista et l'affichage est correct. Et j'ai le comportement que tu décris au clic bouton.

    Voici un premier code qui bloque le clic, mais pas sur le code arabe, c'est presque drôle.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use Tk;
    use Tk::ROText;
    use utf8; 
    use Encode;
     
    use LWP::UserAgent;
    my $ua = LWP::UserAgent->new;
    my $req = HTTP::Request->new(POST => 'http://www.debian.org/index.ar.html');
    my $res = $ua->request($req);
    my $fenetre_principale = MainWindow->new( -title => 'Text - arabe' );
    my $widget_texte = $fenetre_principale->Scrolled('ROText', 
      -scrollbars => 'se',
      -wrap => 'none',
      -takefocus => 0,
      -relief => 'flat',
    )->pack( qw/ -expand 1 -fill both / );
    $widget_texte->insert('end', "1 : Ligne 1 : exemple\n");
    $widget_texte->insert('end', "2 : Ligne 2 : exemple\n");
     
    $widget_texte->tagConfigure('gras',
    	-font => '{Traditional Arabic} 18 {bold}', 
      #-justify => 'right',
    );
     
    if ($res->is_success) {
      $widget_texte->insert('end', decode( 'utf-8', $res->content), 'gras');
    }
    $widget_texte->bindtags(['all']);
    $widget_texte->configure( -state => 'disabled' );
     
    MainLoop;

  12. #32
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut


    Pas presque, totalement drôle !
    Il vaut mieux en rire en effet, surtout ne te prend pas la tête...

    C'est pas très sympa de ma part, mais ça me rassure un peu, je commençais à douter du neurone qu'il me reste !

    sur les fichiers encodés unicode, dans l'interface SUPER, j'ai essayé '<:encoding(unicode)' '<:encoding(UTF-8)' '<:encoding(cp1256)'

    Histoire de rire à y être !
    Ben c'est à pleurer Kikif comme ils disent

  13. #33
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Salut !

    J'ai le pourquoi !
    Pour afficher des caractères complexes arabes, chinois... le scrolled à visiblement besoin de caractères codés sur 4 digits (au moins?) comme dans ta chaîne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    	$texte->insert('end', "\x{FE94}\x{FEF4}\x{FE91}\x{FEAE}\x{FECC}\x{FEDF}\x{FE8D}\x{FE94}\x{FEE4}\x{FEE0}\x{FEDC}\x{FEDF}\x{FE8D}", 'gras');
    Ceux que l'on a dans les fichiers se trouvent être codés sur 3 digits, ça suffit pour afficher mais pas pour être cohérent :
    Ce qu'on envoie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte->insert('end', "\x{feff}\x{645}\x{64e}\x{627}\x{630}\x{64e}\x{627}\x{20}", 'gras');
    En ajoutant n'importe où un zéro dans chaque caractère, quitte à obtenir n'importe quoi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $texte->insert('end', "\x{feff}\x{6405}\x{640e}\x{6207}\x{6300}\x{640e}\x{6207}\x{20}", 'gras');
    Mais pour le coup on a du chinois insécable !
    Reste à trouver comment OBTENIR, puis CONVERTIR chaque caractère sur 4 digits... quitte à insérer dans le scrolled caractère par caractère...

    Brut de fonderie :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    #!/usr/bin/perl
    #
    #	Nouv
    #
    use warnings;
    use strict;
    use utf8;
    use Encode;
    #use encoding 'utf8';
    use Tk;
     
    my ( $nom_fic, $t, $Ligne, $line, @lettre, @chars, $digit, $texte, $info ) = ();
     
    my $Wm = MainWindow->new;
    $nom_fic  = "./LLc_08/P_04.utf8";
     
    # Crée les widgets nécessaires
    my $cadre =$Wm->Frame->pack(
    	-side => 'top',
    	-fill => 'x');
     
    $cadre->Button(
    	-text => "Fin", -command => sub { exit; }
    )->pack(-side => 'right');
     
    $cadre->Button(
    	-text => "Charger", -command => \&lire_fic
    )->pack(-side => 'right', -anchor => 'e');
     
    $cadre->Label(
    	-textvariable =>\$info,
    	-relief => 'ridge'
    )->pack(-side => 'bottom', -fill => 'x');
     
    $texte = $Wm->Scrolled("Text"
    )->pack(-side => 'bottom', -fill => 'both', -expand => 1);
     
    $texte->tagConfigure('gras',
    	-font => "{Simplified Arabic} 16 {bold}", -justify => 'right',);
     
     
    MainLoop;
     
     
    # Lire
    sub lire_fic {
    	my	$info = "Chargement du fichier '$nom_fic";
    	#my 	$texte->delete("1.0", "end");
    	open FIC, '<:encoding(UTF-8)', $nom_fic or $t->insert('end', "ERREUR : Impossible d'ouvrir $nom_fic\n"), return;
    	#open FIC, '<:encoding(unicode)', $nom_fic or $t->insert('end', "ERREUR : Impossible d'ouvrir $nom_fic\n"), return;
     
    	while (<FIC>) {
    		$line = $_ ;
    		$texte->insert("end", $line ,'gras');
    		$texte->insert("end","\n");
     
    		@lettre = split(//, $line);
    		foreach (@lettre) {
    			$texte->insert("end", $_ ,'gras');
    			$digit = $_;
    			#print "$digit \n"; 
    			#printf '<%#x>' $digit;
    			printf ("%lx", $digit);
    		}
    		$texte->insert("end","\n");
     
    		$texte->insert('end', "\x{FE94}\x{FEF4}\x{FE91}\x{FEAE}\x{FECC}\x{FEDF}\x{FE8D}\x{FE94}\x{FEE4}\x{FEE0}\x{FEDC}\x{FEDF}\x{FE8D}", 'gras');
    		$texte->insert("end","\n", 'gras');
    		$texte->insert('end', "\x{feff}\x{645}\x{64e}\x{627}\x{630}\x{64e}\x{627}\x{20}", 'gras');
    		#$texte->insert("end","\n", 'gras');
    		$texte->insert("end","NB sur 3 digit SECCABLES !\n", 'gras');
    		$texte->insert("end","\n", 'gras');
    		$texte->insert('end', "\x{feff}\x{6405}\x{640e}\x{6207}\x{6300}\x{640e}\x{6207}\x{20}", 'gras');
    		$texte->insert("end","sur 4 digit INsécables !!! ", 'gras');
    		$texte->insert("end","\n");
    	}
    	close (FIC);
    }

  14. #34
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    SOUS XP
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use Tk;
    use Tk::ROText;
    use utf8; 
    use Encode;
     
    use LWP::UserAgent;
    my $ua = LWP::UserAgent->new;
    my $req = HTTP::Request->new(POST => 'http://www.debian.org/index.ar.html');
    my $res = $ua->request($req);
    my $fenetre_principale = MainWindow->new( -title => 'Text - arabe' );
    my $widget_texte = $fenetre_principale->Scrolled('ROText', 
      -scrollbars => 'se',
      -wrap => 'none',
      -takefocus => 0,
      -relief => 'flat',
    )->pack( qw/ -expand 1 -fill both / );
    $widget_texte->insert('end', "1 : Ligne 1 : exemple\n");
    $widget_texte->insert('end', "2 : Ligne 2 : exemple\n");
     
    $widget_texte->tagConfigure('gras',
    	-font => '{Traditional Arabic} 18 {bold}', 
      #-justify => 'right',
    );
     
    		$widget_texte->insert('end', "\x{FE94}\x{FEF4}\x{FE91}\x{FEAE}\x{FECC}\x{FEDF}\x{FE8D}\x{FE94}\x{FEE4}\x{FEE0}\x{FEDC}\x{FEDF}\x{FE8D}", 'gras');
    		$widget_texte->insert("end","\n", 'gras');
    		$widget_texte->insert('end', "\x{feff}\x{645}\x{64e}\x{627}\x{630}\x{64e}\x{627}\x{20}", 'gras');
    		$widget_texte->insert("end","NB sur 3 digit SECCABLES !\n", 'gras');
    		$widget_texte->insert("end","\n", 'gras');
    		$widget_texte->insert('end', "\x{feff}\x{6405}\x{640e}\x{6207}\x{6300}\x{640e}\x{6207}\x{20}", 'gras');
    		$widget_texte->insert("end","sur 4 digit INsécables !!! ", 'gras');
    		$widget_texte->insert("end","\n");
     
    if ($res->is_success) {
     # $widget_texte->insert('end', decode( 'utf-8', $res->content), 'gras');
    }
    $widget_texte->bindtags(['all']);
    $widget_texte->configure( -state => 'disabled' );
     
    MainLoop;
    Sous Windows 2008 R2


    Donc ton raisonnement avec les digits est OK. On avance, on avance !
    Images attachées Images attachées   

  15. #35
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Bon abandonne ! en plus sous XP il écrit en caractères séparés et inverse la chaîne !!!

    SUPER VU la 2ème miniature !

  16. #36
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Citation Envoyé par dmganges Voir le message
    Bon abandonne ! en plus sous XP il écrit en caractères séparés et inverse la chaîne !!!
    Bah non, sous XP l'affichage est bon si on est en 4 digits. ton raisonnement de 4 digits par caractères est bon.

  17. #37
    Membre chevronné Avatar de dmganges
    Homme Profil pro
    Retraité. Ne recherche pas un emploi.
    Inscrit en
    Septembre 2011
    Messages
    1 392
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 71
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Retraité. Ne recherche pas un emploi.
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2011
    Messages : 1 392
    Points : 2 044
    Points
    2 044
    Par défaut
    Oui j'avais pas vu la 2ème miniature !

  18. #38
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Images attachées Images attachées  

  19. #39
    Rédactrice

    Avatar de stoyak
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    408
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 408
    Points : 1 491
    Points
    1 491
    Par défaut
    Et voici le résultat sous Mac OS Lion !
    Images attachées Images attachées  
    Cela demande du courage d'en tirer du plaisir
    Quand on n'a qu'un marteau, tous les problèmes ressemblent à un clou

  20. #40
    Responsable Perl et Outils

    Avatar de djibril
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    19 820
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 19 820
    Points : 498 771
    Points
    498 771
    Par défaut
    Merci stoyak.

    Pouvez vous tester ce code chez vous :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    #!/usr/bin/perl
    use strict;
    use warnings;
     
    use Tk;
    use Tk::ROText;
    use utf8; 
    use Encode;
     
    use LWP::UserAgent;
    my $ua = LWP::UserAgent->new;
    my $req = HTTP::Request->new(POST => 'http://www.debian.org/index.ar.html');
    my $res = $ua->request($req);
    my $fenetre_principale = MainWindow->new( -title => 'Text - arabe' );
    my $widget_texte = $fenetre_principale->Scrolled('ROText', 
      -scrollbars => 'se',
      -wrap => 'none',
      -takefocus => 0,
      -relief => 'flat',
    )->pack( qw/ -expand 1 -fill both / );
    $widget_texte->insert('end', "1 : Ligne 1 : exemple\n");
    $widget_texte->insert('end', "2 : Ligne 2 : exemple\n");
     
    $widget_texte->tagConfigure('gras', -font => '{Traditional Arabic} 18 {bold}', );
    $widget_texte->tagConfigure('big', -font => '{Traditional Arabic} 30 {bold}', -justify => 'center' );
     
    $widget_texte->insert('end', "\x{FE94}\x{FEF4}\x{FE91}\x{FEAE}\x{FECC}\x{FEDF}\x{FE8D}\x{FE94}\x{FEE4}\x{FEE0}\x{FEDC}\x{FEDF}\x{FE8D} sur 4 digit => OK\n", 'gras');
    $widget_texte->insert('end', "\x{feff}\x{645}\x{64e}\x{627}\x{630}\x{64e}\x{627}\x{20} sur 3 digit SECCABLES donc pourri\n", 'gras');
    $widget_texte->insert('end', "\x{feff}\x{6405}\x{640e}\x{6207}\x{6300}\x{640e}\x{6207}\x{20} sur 4 digit => OK\n\n", 'gras');
     
    my $smiley = "SMILEY : \x{263a}";
    $widget_texte->insert("end",$smiley, 'big');
     
    if ($res->is_success) {
     # $widget_texte->insert('end', decode( 'utf-8', $res->content), 'gras');
    }
    $widget_texte->bindtags(['all']);
    $widget_texte->configure( -state => 'disabled' );
     
    MainLoop;

Discussions similaires

  1. [Perl/Tk] [Arabe] Afficher le contenu d'un fichier dans un widget Text
    Par rimenis dans le forum Interfaces Graphiques
    Réponses: 7
    Dernier message: 06/11/2013, 09h22
  2. Ecrire Arabe dans un fichier texte
    Par najma dans le forum MATLAB
    Réponses: 6
    Dernier message: 02/06/2011, 19h05
  3. comment afficher en arabe dans un label text
    Par lucastof dans le forum MATLAB
    Réponses: 1
    Dernier message: 29/05/2011, 02h26
  4. Problème d'ecriture arabe dans un fichier texte
    Par gateserv dans le forum Entrée/Sortie
    Réponses: 5
    Dernier message: 30/08/2008, 11h44
  5. [jsp][servlet][jdbc] afficher texte arabe dans un textarea
    Par villeneuvejsp dans le forum Servlets/JSP
    Réponses: 11
    Dernier message: 11/11/2005, 08h43

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo