Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]10428[/thread]

Externe Perl-Skripte in ein Perl-GUI einbinden

Leser: 1


<< >> 4 Einträge, 1 Seite
sWeatinho
 2007-09-20 14:58
#99739 #99739
User since
2007-09-20
5 Artikel
BenutzerIn
[default_avatar]
Hallo,
ich beschäftige mich jetz seit etwa einer Woche mit Perl und musste für meine Praktikumsstelle ein GUI basteln. Das GUI steht soweit und soll den Nutzen haben über Buttons zwischen unterschiedlichen Formularen (Sub-GUIs, auch in Perl geschrieben) umschalten zu können und diese in einer dafür vorgesehenen Arbeitsfläche (Frame) darzustellen.
Allerdings suche ich nun schon seit mehreren Stunden in allen möglichen FAQs und Foren eine Möglichkeit um den Code der Sub-GUIs nicht ins Hauptprogramm einfügen zu müssen, sondern ihn extern in eigenständig lauffähigen .pl Dateien zu speichern und dann bei Bedarf durch das Hauptprogramm aufrufen zu lassen und in meinen Arbeitsflächen-Frame einzubetten.
Bedanke mich schonmal im Vorraus für jede Hilfe und hoffe, dass Problem ist klar geworden.
pktm
 2007-09-20 16:57
#99747 #99747
User since
2003-08-07
2921 Artikel
BenutzerIn
[Homepage]
user image
Ich habe mir neuerlich angewöhnt sozusagen Komponenten zu schreiben. Die Methoden erhalten also das Widget, auf dem sie erzeugt werden sollen (z.B. ein Frame), alle nötigen Parameter und werden dann erzeugt.
Das hat den Vorteil, dass ich die Widgets auch einzeln in einem einfachen MainWindow testen kann.

Triviales, ungetestetes Beispiel:
Code: (dl )
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
package GUI::Komponenten;

=head1 METHODEN

=head2 my_button

Völlig sinnfrei....

=cut

sub my_button {
my $self = shift;
my $top = shift;
my $opts = shift;

# Fehlerbehandlung von Parametern hier...

return $top->Button(-text => 'Spezialbutton bei dem man den Text nicht angeben kann', -command => sub{ $opts->{-command}; });

} # /my_button

1;

# Instanz:

use strict;
use warnings;
use Tk;

my $mw = tkinit();

my $b = GUI::Komponenten->my_button($mw, {-command => sub{ meine_methode(@_) },});

$b->pack();

$mw->MainLoop();

# Dokumentation....

sub meine_methode {
# denk dir was
}


Das ist insofern praktisch, als dass ich die einzelnen Bestandteile z.B. durch Vererbung und erweiterung meiner Klasse in einer Test-Instanz entwickeln und testen kann ohne einen riesigen Kodeberg durcharbeiten zu müssen (früher habe ich immer alle Komponenten in einer einzigen Methode zusammen gebaut, was extrem unübersichtlich und mit der Zeit auch, gerade wenn man mal was wieder verwendet, redundant wird.
http://www.intergastro-service.de (mein erstes CMS :) )
lichtkind
 2007-09-20 17:17
#99750 #99750
User since
2004-03-22
5697 Artikel
ModeratorIn + EditorIn
[Homepage]
user image
gleiches geht auch in wx. eine besondere abstraktion bekommst du auch mit Wx::XRC womit du die gui komplett aus jeglichem perl code rausabstrahieren kannst.
Wiki:Tutorien in der Wiki, mein zeug:
kephra, baumhaus, garten, gezwitscher

Es beginnt immer mit einer Entscheidung.
sWeatinho
 2007-09-21 11:44
#99787 #99787
User since
2007-09-20
5 Artikel
BenutzerIn
[default_avatar]
hey super danke!
is zwar nich ganz was ich mir vorgestellt hatte, aber kommt dem schon sehr nahe und scheint gut auf mein projekt anwendbar! werd mich heute mal dransetzen...
<< >> 4 Einträge, 1 Seite



View all threads created 2007-09-20 14:58.