Tcl/Tk

Tcl/Tk jest skryptowym językiem umożliwiającym budowanie graficznych interfejsów użytkownika (biblioteka Tk). Samo Tcl jest językiem komend tak jak typowe unixowate języki skryptowe takie jak sh. Tk jest z kolei biblioteką odpowiedzialną za interfejs graficzny, jest ona dostępna także dla wielu innych języków programowania, jednak pierwotnie związana jest właśnie z Tcl. Poniżej przedstawiam przykładowy skrypt obrazujący użycie Tlc/Tk. Zobacz w sieci: Tcl/Tk Tutorialkopia lokalna.

#!/usr/bin/wish

label .info_label -text "To testowy programik"
pack .info_label

# deklaracja pola wczytywania/wypisywania tekstu
entry .pole_tekstowe
pack .pole_tekstowe

# funkcja z jednym argumentem
proc dodawanie { ctrl } {
  # deklaracja pustego napisu
  set napis ""
  
  # warunek if
  if { $ctrl == 2 } {
    # wypisanie (na terminal) wyniku dodawania
    puts [expr $ctrl+5]
  } elseif {$ctrl == 1} {
    set lista [list "Ala " {ma } kota]  
    # pętla forech - for jak w bashu ;-)
    foreach wyraz $lista {
      set napis "$napis$wyraz"
    }
    # podnapis na terminal
    puts [string range $napis 3 end]
  } else {
    # pętla for
    for { } {$ctrl>0} { set ctrl [expr $ctrl-1] } {
      # wypisanie napisu
      puts "Hi hi hi"
    }
  }
  # wypisanie $napis w gui
  .pole_tekstowe insert end $napis
}

# funkcja z dwoma argumentami
proc odejmowanie { mode ile } {
  switch $mode {
    "pierwszy" {
      while { $ile >= 10 } {
        puts $ile
        set ile [expr $ile - $ile/2]
      }
    }
    "drugi" {
      # odczyt pliku
      set input_file [open "/etc/passwd" r]
      set zawartosc_pliku [read $input_file]
      close $input_file
      # wypisanie zawartości pliku
      puts $zawartosc_pliku
      # rozłożenie zawartości na linijki i wypisanie jednej z nich
      set linijki [split $zawartosc_pliku "\n"]
      puts [lindex $linijki 2]
      # wykorzystane tu listy mają jeszcze parę możliwości ...
    }
    default {
      set "I co ja mam robić ?"
    }
  }
}

# tworzymy przycisk
button .button1 -text "Dodaj 1" -command "dodawanie 1"
button .button2 -text "Dodaj 2" -command "dodawanie 2"
button .button3 -text "Dodaj 3" -command "dodawanie 3"
button .button4 -text "Odejmij 1" -command "odejmowanie pierwszy 100"
button .button5 -text "Odejmij 2" -command "odejmowanie drugi 10"
button .button6 -text "Odejmij 3" -command "odejmowanie trzeci"

# wyświetlamy przyciski
pack .button1
pack .button2
pack .button3
pack .button4
pack .button5
pack .button6


Copyright (c) 1999-2015, Robert Paciorek (http://www.opcode.eu.org/), BSD/MIT-type license


Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.

This text/program is free document/software. Redistribution and use in source and binary forms, with or without modification, ARE PERMITTED provided save this copyright notice. This document/program is distributed WITHOUT any warranty, use at YOUR own risk.

Valid XHTML 1.1 Dokument ten (URL: http://www.opcode.eu.org/programing/more/tcl_tk) należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek, wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: '2015-10-02 18:42:54 (UTC)' (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).