Schrift
[thread]5111[/thread]

Tk interna: Wie siehts intern aus?



<< >> 8 Einträge, 1 Seite
J-jayz-Z
 2005-10-22 01:01
#44807 #44807
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hi,

ich hab mal ne Frage zum internen Aufbau von Tk.
Welche libs nutzt Perl/Tk eigentlich intern? Es ist ja Plattformunabhängig, also kann man wohl QT oder die WIndows API ausschließen. Oder ist Windows/Linux,Unix jeweils ne andere Tk Art?
Dank euch schonmal, auch, wenn mir wohl nicht viele helfen können...
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
renee
 2005-10-22 05:34
#44808 #44808
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Tk ist die Schnittstelle zu Tcl/Tk...
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
J-jayz-Z
 2005-10-22 12:58
#44809 #44809
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das meinte ich nicht. Tk muss ja auch in was geschrieben sein. Lass es Tcl/Tk oder Perl/Tk. Mich würde interessieren, was für grafische Bibliotheken es verwendet, das es so unabhängig vom System läuft (wenn es nicht verschiedene Tk Versionen für Win und *nix sind) ...
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
Ronnie
 2005-10-22 13:51
#44810 #44810
User since
2003-08-14
2022 Artikel
BenutzerIn
[default_avatar]
Tk und jede andere Art von Grafikbibliothek muss für das Zielsystem z.B. Windows angepasst werden, das zumindest die elemtarsten Funktionen auf die Systembibliotheken abgebildet werden. Jedes Betriebssystem stellt eine Form von Hardware-Abstraction-Layer zur Verfügung und erlaubt auch keinem User-Level-Programm (oder Bibliothek) direkt, also unter Umgehung des Betriebssystems, auf z.B. die Grafikkarte zuzugreifen. Also muss TK für jedes Betriebssystem zumindest auf dieser Ebene angepasst werden.\n\n

<!--EDIT|Ronnie|1129974730-->
J-jayz-Z
 2005-10-22 15:34
#44811 #44811
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
okay, also kann es sein, das es unter windoof die windows API nutzt und unter Linux GTK ? Das wollte ich wissen, thx
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
Dubu
 2005-10-22 17:10
#44812 #44812
User since
2003-08-04
2145 Artikel
ModeratorIn + EditorIn

user image
Tk ist selber ein Window Toolkit. Es braucht deshalb kein Gtk/Qt/Motif/wasauchimmer, sondern setzt unter Unix/Linux direkt auf der Xlib auf. Abgesehen davon ist es auch viel aelter als Gtk und Qt.

Wie's unter Windows funktioniert, kann ich nicht sagen, davon habe ich keine Ahnung.
ptk
 2005-10-22 18:09
#44813 #44813
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Wenn man sich die Sourcen von Tk anguckt, dann gibt es generic-Verzeichnisse, wo der gemeinsame Code liegt, und dann Verzeichnisse für die jeweiligen Windowing-Systeme, also unix für X11, win für Windows. Im originalen Tcl/Tk-Code gibt es wohl auch ein mac-Verzeichnis, welches bei Perl/Tk nicht übernommen wurde.

Wie Dubu schon richtig anmerkt, setzt Tk recht nah auf die Xlib auf. Für Windows gibt es teilweise Wrapperfunktionen, die die Xlib-Funktionen in Win32-API-Aufrufe übersetzt (siehe z.B. unter win/tkWinDraw.c). Deshalb ist Tk unter Windows auch immer etwas träger als unter X11.
J-jayz-Z
 2005-10-22 18:42
#44814 #44814
User since
2005-04-13
625 Artikel
BenutzerIn
[Homepage] [default_avatar]
Gut, das wollte ich wissen, dank euch !
perl -Mstrict -Mwarnings -e 'package blub; sub new { bless {} } sub bar {my $self=shift; $self->{bla}="5065726c2d436f6d6d756e697479"; return $self->{bla};} my $foo=blub->new();print "Hallo ";print pack("H*",$foo->bar()); print "\n"'

http://perl-tutor.de
<< >> 8 Einträge, 1 Seite



View all threads created 2005-10-22 01:01.