PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : perl gui ohne Tk ?



Chakotay
02-08-2006, 12:59
hi
hab da mal ne frage

gib es ne möglichkeit eine grafische oberfläche in perl zu coden ähnlich der hier unten
aber ohne use Tk; ???


!/usr/bin/perl
use strict;
use warnings;

use Tk;

my $mw = new MainWindow;

$mw->Label(-text => 'Hier den gew. nick eingeben:')->pack(-anchor => 'w');
my $nick = $mw->Entry()->pack();

my $btn = $mw->Button(-text => 'OK',
-command => sub { print "csrot ", $nick->get(), "\n",
$mw->destroy();
},
)
->pack();

MainLoop();

michael.sprick
02-08-2006, 14:31
klar gibt es andere GUI's:

° Wx
° X11::Motif
° GTK
° Qt
° Sx

Oder, falls Du nur was für die Konsole suchst, Curses oder Dialog

Chakotay
02-08-2006, 15:00
es soll für ein xchat script sein

sieht der rest der gui ansonsten identisch aus
also wird nur der use Tk ersetzt

oder muss ich da auch grundlegende änderungen am rest des codes ändern ?

btw

welches davon iss am ehesten für xchat geeignet ?

michael.sprick
02-08-2006, 15:30
Ich kenne xchat nicht, aber die GUIs funktionieren schon anders und haben auch komplett andere Abhängigkeiten...

Wenn Du etwas willst, was man wie Tk bedient und was wie Tk aussieht, warum nimmst Du nicht Tk?

;)

jeebee
02-08-2006, 15:33
wenn du etwas willst das wie Xchat (GTK) aussieht nimm GTK. Die Syntax wird wohl nicht ganz die gleiche sein.

http://gtk2-perl.sourceforge.net/

PS: nach kurzem testen, wer GTK mit C kennt (vllt auch mit anderen Sprachen, kann ich nicht beurteilen), kann auch GTK mit perl (ich auch, obwohl ich von perl nicht viel Ahnung habe). Die oben genannte URL sollte bei Problemen die erste Anlaufstelle sein.

Chakotay
02-08-2006, 17:19
ui das wird wohl ne grössere angelegenheit :-)

danke hier erstmal (muss tutorials durchforsten^^)

Chakotay
04-08-2006, 10:36
so hab mir da jetzt was nettes kleines zum testen zusammengebastelt
nur beim scliessen hab ich ein prob
immo verwende ich "exit" das ist aber zu hartnäckig :-( es schliesst nicht nur mein fenster(so wie es das soll)
nein es schliesst gleich ALLE fenster von xchat mit :-(

was könnt ich stattdessen nehmen (destroy und quit hatten keinen effect ???)
und wenn ich "exit" mit $window->destroy ersetzen schliesst es zwar beim ersten mal so wie ichs will
allerdings beim zweiten dritten... mal passiert einfach nix :-(

weiss jemand wo mein denkfehler ist ?

kann es daran liegen das es in einer sub steht ??? wie beendet man ne sub sodas se komplett neu gestartet werden kann ohne das ganze script neu zu starten ???


#!/usr/bin/perl
# written by Chakotay

use Gtk2 '-init';
sub menu_starter
{
my $window = Gtk2::Window->new;
$window->set_title ("[Chako]Scripts Einstellungen");
$window->signal_connect (destroy => sub { Gtk2->main_quit; });

my $notebook1 = Gtk2::Notebook->new;
$window->add($notebook1);
$notebook1->show;

my $fixed1 = Gtk2::Fixed->new;
$notebook1->add($fixed1,);
$notebook1->set_tab_label_text($fixed1, "Hauptmenü");
$fixed1->show;

my $Speichern1 = Gtk2::Widget->new("Gtk2::Button",
label=>"Speichern");
$Speichern1->signal_connect(clicked=>\&my_save);
$fixed1->put($Speichern1, 240, 272);
$Speichern1->set_size_request(69, 24);
$Speichern1->show;

my $Abbrechen1 = Gtk2::Widget->new("Gtk2::Button",
label=>"Abbrechen");
$Abbrechen1->signal_connect(clicked=>\&my_cancel);
$fixed1->put($Abbrechen1, 312, 272);
$Abbrechen1->set_size_request(72, 24);
$Abbrechen1->show;

$window->show_all();

Gtk2->main;

sub my_save {
IRC::print("Good bye saver!\n");
exit;
}

sub my_cancel {
IRC::print("Good bye canceler!\n");
exit;
}
return 1;
}