Tcl-Tk - Panduan Cepat
Tcl adalah kependekan dari Tool Command Language. John Ousterhout dari University of California, Berkeley, merancangnya. Ini adalah kombinasi dari bahasa skrip dan penerjemahnya sendiri yang disematkan ke aplikasi, kami kembangkan dengannya.
Tcl awalnya dikembangkan untuk Unix. Kemudian porting ke Windows, DOS, OS / 2, dan Mac OSX. Tcl sangat mirip dengan bahasa shell unix lainnya seperti Bourne Shell (Sh), C Shell (csh), Korn Shell (sh), dan Perl.
Ini bertujuan untuk memberikan kemampuan bagi program untuk berinteraksi dengan program lain dan juga untuk bertindak sebagai juru bahasa yang dapat disematkan. Meskipun, tujuan awalnya adalah agar program dapat berinteraksi, Anda dapat menemukan aplikasi lengkap yang ditulis dalam Tcl / Tk.
Fitur Tcl
Fitur Tcl adalah sebagai berikut -
Mengurangi waktu pengembangan.
Kit antarmuka pengguna yang kuat dan sederhana dengan integrasi TK.
Tulis sekali, jalankan di mana saja. Ini berjalan di Windows, Mac OS X, dan hampir di setiap platform Unix.
Cukup mudah untuk memulai bagi programmer berpengalaman; karena, bahasanya sangat sederhana sehingga mereka dapat mempelajari Tcl dalam beberapa jam atau hari.
Anda dapat dengan mudah memperluas aplikasi yang ada dengan Tcl. Juga, dimungkinkan untuk menyertakan Tcl di C, C ++, atau Java ke Tcl atau sebaliknya.
Memiliki seperangkat fungsi jaringan yang kuat.
Terakhir, ini adalah open source, gratis, dan dapat digunakan untuk aplikasi komersial tanpa batasan apa pun.
Aplikasi
Tcl adalah bahasa tujuan umum dan Anda dapat menemukan Tcl di mana-mana. Itu termasuk,
- Situs web skalabel yang sering kali didukung oleh database.
- Server web berkinerja tinggi dibangun dengan TclHttpd.
- Tcl dengan situs web berbasis CGI.
- Aplikasi GUI desktop.
- Aplikasi yang disematkan.
Pengaturan Lingkungan Lokal
Jika Anda ingin mengatur lingkungan Anda untuk Tcl, Anda memerlukan dua aplikasi perangkat lunak berikut yang tersedia di komputer Anda -
- Editor Teks
- Tcl Interpreter.
Editor Teks
Ini akan digunakan untuk mengetik program Anda. Contoh dari beberapa editor teks termasuk Windows Notepad, perintah OS Edit, Brief, Epsilon, EMACS, dan vim atau vi.
Nama dan versi editor teks dapat berbeda pada sistem operasi yang berbeda. Misalnya, Notepad akan digunakan di Windows, dan vim atau vi dapat digunakan di windows serta Linux atau UNIX.
File yang Anda buat dengan editor teks Anda disebut file sumber dan berisi kode sumber program. File sumber untuk program Tcl diberi nama dengan ekstensi".tcl".
Sebelum memulai pemrograman Anda, pastikan Anda memiliki satu editor teks dan Anda memiliki cukup pengalaman untuk menulis program komputer, menyimpannya dalam sebuah file, membangunnya, dan terakhir menjalankannya.
Penerjemah Tcl
Ini hanyalah program kecil yang memungkinkan Anda untuk mengetik perintah Tcl dan menjalankannya baris demi baris. Ini menghentikan eksekusi file tcl, dalam kasus, itu menemukan kesalahan tidak seperti kompiler yang dijalankan sepenuhnya.
Mari kita memiliki file helloWorld.tcl sebagai berikut. Kami akan menggunakan ini sebagai program pertama, kami berjalan pada platform yang Anda pilih.
#!/usr/bin/tclsh
puts "Hello World!"
Instalasi di Windows
Unduh versi terbaru untuk penginstal windows dari daftar binari Tcl Aktif yang tersedia. Edisi komunitas Tcl aktif gratis untuk penggunaan pribadi.
Jalankan file yang dapat diunduh untuk menginstal Tcl, yang dapat dilakukan dengan mengikuti petunjuk di layar.
Sekarang, kita dapat membangun dan menjalankan file Tcl say helloWorld.tcl dengan beralih ke folder yang berisi file tersebut menggunakan perintah 'cd' dan kemudian jalankan program menggunakan langkah-langkah berikut
C:\Tcl> tclsh helloWorld.tcl
Kita bisa melihat outputnya sebagai berikut.
C:\Tcl> helloWorld
C: \ Tcl adalah foldernya, saya gunakan untuk menyimpan sampel saya. Anda dapat mengubahnya ke folder tempat Anda menyimpan program Tcl.
Instalasi di Linux
Sebagian besar sistem operasi Linux hadir dengan Tcl inbuilt dan Anda dapat langsung memulai di sistem tersebut. Jika tidak tersedia, Anda dapat menggunakan perintah berikut untuk mengunduh dan menginstal Tcl-Tk.
$ yum install tcl tk
Sekarang, kita dapat membangun dan menjalankan file Tcl say helloWorld.tcl dengan beralih ke folder yang berisi file tersebut menggunakan perintah 'cd' dan kemudian jalankan program menggunakan langkah-langkah berikut -
$ tclsh helloWorld.tcl
Kita dapat melihat output berikut -
$ hello world
Instalasi pada Sistem berbasis Debian
Jika tidak tersedia di OS Anda, Anda dapat menggunakan perintah berikut untuk mengunduh dan menginstal Tcl-Tk -
$ sudo apt-get install tcl tk
Sekarang, kita dapat membangun dan menjalankan file Tcl say helloWorld.tcl dengan beralih ke folder yang berisi file tersebut menggunakan perintah 'cd' dan kemudian jalankan program menggunakan langkah-langkah berikut -
$ tclsh helloWorld.tcl
Kita dapat melihat output berikut -
$ hello world
Instalasi di Mac OS X
Unduh versi terbaru untuk paket Mac OS X dari daftar binari Tcl Aktif yang tersedia. Edisi komunitas Tcl aktif gratis untuk penggunaan pribadi.
Jalankan file yang dapat diunduh untuk menginstal Tcl Aktif, yang dapat dilakukan dengan mengikuti petunjuk di layar.
Sekarang, kita dapat membangun dan menjalankan file Tcl say helloWorld.tcl dengan beralih ke folder yang berisi file tersebut menggunakan 'cd' dan kemudian jalankan program menggunakan langkah-langkah berikut -
$ tclsh helloWorld.tcl
Kita dapat melihat output berikut -
$ hello world
Instalasi dari File Sumber
Anda dapat menggunakan opsi untuk menginstal dari file sumber ketika paket biner tidak tersedia. Biasanya lebih disukai menggunakan binari Tcl untuk Windows dan Mac OS X, jadi hanya kompilasi sumber pada sistem berbasis unix yang ditampilkan di bawah.
Unduh file sumber.
Sekarang, gunakan perintah berikut untuk mengekstrak, mengompilasi, dan membangun setelah beralih ke folder yang diunduh.
$ tar zxf tcl8.6.1-src.tar.gz $ cd tcl8.6.1
$ cd unix $ ./configure —prefix=/opt —enable-gcc
$ make $ sudo make install
Note - Pastikan, Anda mengubah nama file ke versi yang Anda unduh pada perintah 1 dan 2 yang diberikan di atas.
Di Tcl, kami mengklasifikasikan beberapa variabel sebagai variabel khusus dan mereka memiliki penggunaan / fungsionalitas yang telah ditentukan. Daftar variabel spesial tercantum di bawah ini.
Sr.No. | Variabel & Deskripsi Khusus |
---|---|
1 | argc Mengacu pada sejumlah argumen baris perintah. |
2 | argv Mengacu pada daftar yang berisi argumen baris perintah. |
3 | argv0 Mengacu pada nama file dari file yang diinterpretasikan atau nama yang kita gunakan untuk memanggil skrip. |
4 | env Digunakan untuk mewakili larik elemen yang merupakan variabel lingkungan. |
5 | errorCode Memberikan kode kesalahan untuk kesalahan Tcl terakhir. |
6 | errorInfo Menyediakan pelacakan tumpukan untuk kesalahan Tcl terakhir. |
7 | tcl_interactive Digunakan untuk beralih antara mode interaktif dan non-interaktif dengan menyetelnya ke 1 dan 0 masing-masing. |
8 | tcl_library Digunakan untuk mengatur lokasi pustaka Tcl standar. |
9 | tcl_pkgPath Menyediakan daftar direktori tempat paket biasanya diinstal. |
10 | tcl_patchLevel Mengacu pada level patch interpreter Tcl saat ini. |
11 | tcl_platform Digunakan untuk merepresentasikan larik elemen dengan objek termasuk byteOrder, mesin, osVersion, platform, dan os. |
12 | tcl_precision Mengacu pada presisi yaitu jumlah digit yang harus dipertahankan saat mengonversi ke bilangan floating-point menjadi string. Nilai defaultnya adalah 12. |
13 | tcl_prompt1 Mengacu pada prompt utama. |
14 | tcl_prompt2 Mengacu pada prompt sekunder dengan perintah yang tidak valid. |
15 | tcl_rcFileName Menyediakan file startup khusus pengguna. |
16 | tcl_traceCompile Digunakan untuk mengontrol penelusuran kompilasi bytecode. Gunakan 0 untuk tanpa output, 1 untuk ringkasan, dan 2 untuk detail. |
17 | tcl_traceExec Digunakan untuk mengontrol pelacakan eksekusi bytecode. Gunakan 0 untuk tanpa output, 1 untuk ringkasan, dan 2 untuk detail. |
18 | tcl_version Menampilkan versi interpreter Tcl saat ini. |
Variabel khusus di atas memiliki arti khusus untuk interpreter Tcl.
Contoh untuk menggunakan variabel khusus Tcl
Mari kita lihat beberapa contoh untuk variabel khusus.
Versi Tcl
#!/usr/bin/tclsh
puts $tcl_version
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini -
8.6
Jalur Lingkungan Tcl
#!/usr/bin/tclsh
puts $env(PATH)
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini -
/home/cg/root/GNUstep/Tools:/usr/GNUstep/Local/Tools:/usr/GNUstep/
System/Tools:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/webmaster/.local/bin:/
home/webmaster/bin:/usr/local/scriba/bin:/usr/local/smlnj/
bin:/usr/local/bin/std:/usr/local/bin/extra:/usr/local/fantom/bin:/usr/
local/dart/bin:/usr/bin:/usr/local/bin:/usr/local/sbin:/usr/sbin:/opt/mono/
bin:/opt/mono/lib/mono/4.5:/usr/local/bin:.:/usr/libexec/sdcc:/usr/local/
icon-v950/bin:/usr/local/mozart/bin:/opt/Pawn/bin:/opt/jdk1.7.0_75/bin:/
opt/jdk1.7.0_75/jre/bin:/opt/pash/Source/PashConsole/bin/Debug/
Jalur Paket Tcl
#!/usr/bin/tclsh
puts $tcl_pkgPath
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini -
/usr/lib64/tcl8.6 /usr/share/tcl8.6 /usr/lib64/tk8.6 /usr/share/tk8.6
Perpustakaan Tcl
#!/usr/bin/tclsh
puts $tcl_library
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini -
/usr/share/tcl8.6
Tingkat Patch Tcl
#!/usr/bin/tclsh
puts $tcl_patchLevel
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini -
8.6.6
Presisi Tcl
#!/usr/bin/tclsh
puts $tcl_precision
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini -
0
File Startup Tcl
#!/usr/bin/tclsh
puts $tcl_rcFileName
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini -
~/.tclshrc
Tcl cukup mudah dipelajari dan mari kita mulai membuat program Tcl pertama kita!
Program Tcl Pertama
Mari kita tulis program Tcl sederhana. Semua file Tcl akan memiliki ekstensi, yaitu .tcl. Jadi, letakkan kode sumber berikut di file test.tcl.
#!/usr/bin/tclsh
puts "Hello, World!"
Dengan asumsi, lingkungan Tcl diatur dengan benar; mari kita jalankan program setelah beralih ke direktori file dan kemudian jalankan program menggunakan -
$ tclsh test.tcl
Kami akan mendapatkan output berikut -
Hello, World!
Sekarang mari kita lihat struktur dasar program Tcl, sehingga akan mudah bagi Anda untuk memahami blok bangunan dasar dari bahasa Tcl. Di Tcl, kami menggunakan baris baru atau titik koma untuk mengakhiri baris kode sebelumnya. Tetapi titik koma tidak diperlukan, jika Anda menggunakan baris baru untuk setiap perintah.
Komentar
Komentar seperti teks bantuan dalam program Tcl Anda dan penerjemah mengabaikannya. Komentar dapat ditulis menggunakan tanda hash _ (#) di awal.
#!/usr/bin/tclsh
# my first program in Tcl
puts "Hello World!"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Hello World!
Komentar multiline atau blok ditulis menggunakan 'if' dengan kondisi '0'. Contohnya ditunjukkan di bawah ini.
#!/usr/bin/tclsh
if 0 {
my first program in Tcl program
Its very simple
}
puts "Hello World!"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Hello World!
Komentar sebaris menggunakan; #. Contoh diberikan di bawah ini.
#!/usr/bin/tclsh
puts "Hello World!" ;# my first print in Tcl program
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Hello World!
Pengenal
Pengenal Tcl adalah nama yang digunakan untuk mengidentifikasi variabel, fungsi, atau item lain yang ditentukan pengguna. Pengenal dimulai dengan huruf A sampai Z atau a sampai z atau garis bawah (_) diikuti dengan nol atau lebih huruf, garis bawah, dollar ($), dan angka (0 sampai 9).
Tcl tidak mengizinkan karakter tanda baca seperti @, dan% dalam pengenal. Tcl adalahcase sensitive_ bahasa. Jadi Tenaga Kerja dan tenaga kerja adalah dua pengenal berbeda di Tcl. Berikut beberapa contoh pengenal yang dapat diterima -
mohd zara abc move_name a_123
myname50 _temp j a23b9 retVal
Kata yang Dicadangkan
Daftar berikut menunjukkan beberapa kata yang dipesan di Tcl. Kata-kata yang dicadangkan ini tidak boleh digunakan sebagai konstanta atau variabel atau nama pengenal lainnya.
setelah | menambahkan | Himpunan | auto_execok |
auto_import | auto_load | auto_load_index | auto_qualify |
biner | Bgerror | istirahat | menangkap |
CD | Jam | Menutup | concat |
terus | Dde | default | lain |
elseif | Pengkodean | eof | kesalahan |
eval | Exec | keluar | expr |
fblocked | Fconfigure | fcopy | mengajukan |
fileevent | Menyiram | untuk | untuk setiap |
format | Mendapat | gumpal | global |
sejarah | Jika | info | interp |
Ikuti | Lappend | lindex | linsert |
daftar | Llength | beban | lrange |
lreplace | Cari | lsort | namespace |
Buka | Paket | pid | pkg_mkIndex |
proc | Puts | pwd | Baca |
regexp | Regsub | ganti nama | sumber |
kembali | Pindai | mencari | set |
stopkontak | Sumber | membagi | tali |
subst | Beralih | tclLog | menceritakan |
waktu | Jejak | tidak diketahui | tidak disetel |
memperbarui | Naik tingkat | upvar | variabel |
vwait | Sementara |
Spasi kosong di Tcl
Baris yang hanya berisi spasi, kemungkinan dengan komentar, disebut sebagai blank line, dan penerjemah Tcl mengabaikannya sama sekali.
Spasi putih adalah istilah yang digunakan di Tcl untuk mendeskripsikan kosong, tab, karakter baris baru, dan komentar. Spasi putih memisahkan satu bagian pernyataan dari yang lain dan memungkinkan interpreter untuk mengidentifikasi di mana satu elemen dalam pernyataan, seperti menempatkan, berakhir dan elemen berikutnya dimulai. Oleh karena itu, dalam pernyataan berikut -
#!/usr/bin/tclsh
puts "Hello World!"
Harus ada setidaknya satu karakter spasi (biasanya spasi) antara "put" dan "Hello World!" agar penerjemah dapat membedakannya. Di sisi lain, dalam pernyataan berikut -
#!/usr/bin/tclsh
puts [expr 3 + 2] ;# print sum of the 3 and 2
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
5
Tidak diperlukan karakter spasi antara 3 dan +, atau antara + dan 2; meskipun, Anda bebas memasukkan beberapa jika Anda ingin agar dapat dibaca.
Seperti yang Anda ketahui, Tcl adalah bahasa perintah Alat, perintah adalah bagian bahasa yang paling penting. Perintah Tcl dibangun di dalam bahasa dengan masing-masing memiliki fungsi yang telah ditentukan sebelumnya. Perintah-perintah ini membentuk kata-kata khusus bahasa dan tidak dapat digunakan untuk penamaan variabel lainnya. Keuntungan dengan perintah Tcl ini adalah, Anda dapat menentukan implementasi Anda sendiri untuk salah satu dari perintah ini untuk menggantikan fungsionalitas bawaan asli.
Setiap perintah Tcl memvalidasi masukan dan mengurangi pekerjaan penerjemah.
Perintah Tcl sebenarnya adalah daftar kata, dengan kata pertama mewakili perintah yang akan dijalankan. Kata-kata berikutnya mewakili argumen. Untuk mengelompokkan kata menjadi satu argumen, kami menyertakan beberapa kata dengan "" atau {}.
Sintaks perintah Tcl adalah sebagai berikut -
commandName argument1 argument2 ... argumentN
Mari kita lihat contoh sederhana dari perintah Tcl -
#!/usr/bin/tclsh
puts "Hello, world!"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Hello, world!
Pada kode di atas, 'put' adalah perintah Tcl dan "Hello World" adalah argument1. Seperti yang dikatakan sebelumnya, kami telah menggunakan "" untuk mengelompokkan dua kata.
Mari kita lihat contoh lain dari perintah Tcl dengan dua argumen -
#!/usr/bin/tclsh
puts stdout "Hello, world!"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Hello, world!
Pada kode di atas, 'put' adalah perintah Tcl, 'stdout' adalah argument1, dan "Hello World" adalah argument2. Di sini, stdout membuat program untuk mencetak pada perangkat keluaran standar.
Pergantian Perintah
Dalam penggantian perintah, tanda kurung siku digunakan untuk mengevaluasi skrip di dalam tanda kurung siku. Contoh sederhana untuk menambahkan dua angka ditunjukkan di bawah ini -
#!/usr/bin/tclsh
puts [expr 1 + 6 + 9]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
16
Substitusi Variabel
Dalam substitusi variabel, $ digunakan sebelum nama variabel dan ini mengembalikan konten variabel. Contoh sederhana untuk menetapkan nilai ke variabel dan mencetaknya ditunjukkan di bawah ini.
#!/usr/bin/tclsh
set a 3
puts $a
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
3
Substitusi Backslash
Ini biasa disebut escape sequences; dengan setiap garis miring terbalik, diikuti dengan huruf yang memiliki arti tersendiri. Contoh sederhana untuk substitusi baris baru ditunjukkan di bawah ini -
#!/usr/bin/tclsh
puts "Hello\nWorld"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Hello
World
Tipe data primitif dari Tcl adalah string dan seringkali kita dapat menemukan kutipan pada Tcl sebagai bahasa hanya string. Tipe data primitif ini pada gilirannya membuat tipe data komposit untuk daftar dan array asosiatif. Di Tcl, tipe data tidak hanya dapat mewakili objek Tcl sederhana, tetapi juga dapat mewakili objek kompleks seperti pegangan, objek grafis (kebanyakan widget), dan saluran I / O. Mari kita lihat detail tentang masing-masing hal di atas.
Objek Tcl Sederhana
Di Tcl, apakah itu bilangan bulat, boolean, bilangan floating point, atau string. Jika Anda ingin menggunakan variabel, Anda dapat langsung memberikan nilai padanya, tidak ada langkah deklarasi di Tcl. Mungkin ada representasi internal untuk berbagai jenis objek ini. Itu dapat mengubah satu tipe data ke tipe lainnya bila diperlukan. Sintaks untuk menetapkan nilai ke variabel adalah sebagai berikut -
#!/usr/bin/tclsh
set myVariable 18
puts $myVariable
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
18
Pernyataan di atas akan membuat nama variabel myVariable dan menyimpannya sebagai string meskipun kami belum menggunakan kutipan ganda. Sekarang, jika kita mencoba membuat aritmatika pada variabel, itu secara otomatis berubah menjadi bilangan bulat. Contoh sederhana ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set myVariable 18
puts [expr $myVariable + 6 + 9]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
33
Satu hal penting yang perlu diperhatikan adalah, variabel ini tidak memiliki nilai default dan harus diberi nilai sebelum digunakan.
Jika kami mencoba mencetak menggunakan put, jumlahnya diubah menjadi string yang tepat. Memiliki dua representasi, internal dan eksternal, membantu Tcl membuat struktur data yang kompleks dengan mudah dibandingkan dengan bahasa lain. Selain itu, Tcl lebih efisien karena sifat objeknya yang dinamis.
Representasi String
Tidak seperti bahasa lain, di Tcl, Anda tidak perlu menyertakan tanda kutip ganda jika hanya ada satu kata. Contohnya bisa -
#!/usr/bin/tclsh
set myVariable hello
puts $myVariable
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
hello
Saat kita ingin merepresentasikan beberapa string, kita bisa menggunakan tanda kutip ganda atau kurung kurawal. Itu ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set myVariable "hello world"
puts $myVariable set myVariable {hello world} puts $myVariable
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
hello world
hello world
Daftar
Daftar tidak lain adalah sekelompok elemen. Sekelompok kata baik menggunakan tanda kutip ganda atau tanda kurung kurawal dapat digunakan untuk mewakili daftar sederhana. Daftar sederhana ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set myVariable {red green blue}
puts [lindex $myVariable 2] set myVariable "red green blue" puts [lindex $myVariable 1]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
blue
green
Array Asosiatif
Array asosiatif memiliki indeks (kunci) yang tidak harus berupa bilangan bulat. Biasanya ini adalah string yang bertindak seperti pasangan nilai kunci. Contoh sederhana ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set marks(english) 80
puts $marks(english) set marks(mathematics) 90 puts $marks(mathematics)
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
80
90
Menangani
Tcl menangani biasanya digunakan untuk mewakili file dan objek grafik. Ini dapat mencakup tuas ke permintaan jaringan dan juga saluran lain seperti komunikasi port serial, soket, atau perangkat I / O. Berikut ini adalah contoh di mana pegangan file dibuat.
set myfile [open "filename" r]
Anda akan melihat lebih detail tentang file di bab I / O file Tcl .
Di Tcl, tidak ada konsep deklarasi variabel. Sekali, nama variabel baru ditemukan, Tcl akan mendefinisikan variabel baru.
Penamaan Variabel
Nama variabel dapat berisi karakter dan panjang apa saja. Anda bahkan dapat memberi spasi putih dengan mengapit variabel dalam tanda kurung kurawal, tetapi itu tidak disukai.
Perintah set digunakan untuk menetapkan nilai ke variabel. Sintaks untuk perintah set adalah,
set variableName value
Beberapa contoh variabel ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set variableA 10
set {variable B} test
puts $variableA puts ${variable B}
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
10
test
Seperti yang Anda lihat pada program di atas, $ variableName digunakan untuk mendapatkan nilai variabel.
Pengetikan Dinamis
Tcl adalah bahasa yang diketik secara dinamis. Nilai variabel dapat secara dinamis dikonversi ke jenis yang diperlukan bila diperlukan. Misalnya, angka 5 yang disimpan sebagai string akan diubah menjadi angka saat melakukan operasi aritmatika. Itu ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set variableA "10"
puts $variableA
set sum [expr $variableA +20]; puts $sum
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
10
30
Ekspresi Matematika
Seperti yang Anda lihat pada contoh di atas, expr digunakan untuk merepresentasikan ekspresi matematika. Presisi default Tcl adalah 12 digit. Untuk mendapatkan hasil floating point, kita harus menambahkan setidaknya satu digit desimal. Contoh sederhana menjelaskan hal di atas.
#!/usr/bin/tclsh
set variableA "10"
set result [expr $variableA / 9]; puts $result
set result [expr $variableA / 9.0]; puts $result
set variableA "10.0"
set result [expr $variableA / 9]; puts $result
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
1
1.1111111111111112
1.1111111111111112
Dalam contoh di atas, Anda dapat melihat tiga kasus. Dalam kasus pertama, pembagi dan pembagi adalah bilangan bulat dan kita mendapatkan bilangan bulat sebagai hasilnya. Dalam kasus kedua, pembagi saja adalah angka desimal dan dalam kasus ketiga, pembagi adalah angka desimal. Dalam kasus kedua dan ketiga, kami mendapatkan angka desimal sebagai hasilnya.
Pada kode di atas, Anda dapat mengubah presisi dengan menggunakan variabel khusus tcl_precision. Itu ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set variableA "10"
set tcl_precision 5
set result [expr $variableA / 9.0]; puts $result
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
1.1111
Operator adalah simbol yang memberi tahu kompiler untuk melakukan manipulasi matematika atau logika tertentu. Bahasa Tcl kaya akan operator bawaan dan menyediakan jenis operator berikut -
- Operator Aritmatika
- Operator Relasional
- Operator Logis
- Operator Bitwise
- Operator Ternary
Bab ini akan menjelaskan operator aritmatika, relasional, logika, bitwise, dan terner satu per satu.
Operator Aritmatika
Tabel berikut menunjukkan semua operator aritmatika yang didukung oleh bahasa Tcl. Asumsikan variabel 'A' menampung 10 dan variabel 'B' menampung 20, lalu -
Tunjukkan Contoh
Operator | Deskripsi | Contoh |
---|---|---|
+ | Menambahkan dua operan | A + B akan menghasilkan 30 |
- | Mengurangi operan kedua dari yang pertama | A - B akan memberi -10 |
* | Menggandakan kedua operan | A * B akan memberi 200 |
/ | Membagi pembilang dengan de-numerator | B / A akan memberi 2 |
% | Modulus Operator dan sisa setelah pembagian integer | B% A akan memberi 0 |
Operator Relasional
Tabel berikut menunjukkan semua operator relasional yang didukung oleh bahasa Tcl. Asumsikan variabelA memegang 10 dan variabel B memegang 20, lalu -
Tunjukkan Contoh
Operator | Deskripsi | Contoh |
---|---|---|
== | Memeriksa apakah nilai dari dua operan sama atau tidak, jika ya maka kondisinya menjadi benar. | (A == B) tidak benar. |
! = | Memeriksa apakah nilai dari dua operan sama atau tidak, jika nilai tidak sama maka kondisi menjadi benar. | (A! = B) benar. |
> | Memeriksa apakah nilai operan kiri lebih besar dari nilai operan kanan, jika ya maka kondisi menjadi benar. | (A> B) tidak benar. |
< | Memeriksa apakah nilai operan kiri kurang dari nilai operan kanan, jika ya maka kondisinya menjadi benar. | (A <B) benar. |
> = | Memeriksa apakah nilai operan kiri lebih besar dari atau sama dengan nilai operan kanan, jika ya maka kondisi menjadi benar. | (A> = B) tidak benar. |
<= | Memeriksa apakah nilai operan kiri kurang dari atau sama dengan nilai operan kanan, jika ya maka kondisi menjadi benar. | (A <= B) benar. |
Operator Logis
Tabel berikut menunjukkan semua operator logika yang didukung oleh bahasa Tcl. Asumsikan variabelA memegang 1 dan variabel B memegang 0, lalu -
Tunjukkan Contoh
Operator | Deskripsi | Contoh |
---|---|---|
&& | Disebut Logical AND operator. Jika kedua operan bukan nol, maka kondisi menjadi benar. | (A && B) salah. |
|| | Disebut Logical OR Operator. Jika salah satu dari dua operan bukan nol, maka kondisi menjadi benar. | (A || B) itu benar. |
! | Disebut Logical NOT Operator. Gunakan untuk membalikkan keadaan logis operannya. Jika kondisi benar maka operator NOT akan membuat salah. | ! (A && B) benar. |
Operator Bitwise
Operator bitwise bekerja pada bit dan melakukan operasi bit demi bit. Tabel kebenaran untuk &, |, dan ^ adalah sebagai berikut -
p | q | p & q | p | q | p ^ q |
---|---|---|---|---|
0 | 0 | 0 | 0 | 0 |
0 | 1 | 0 | 1 | 1 |
1 | 1 | 1 | 1 | 0 |
1 | 0 | 0 | 1 | 1 |
Asumsikan jika A = 60; dan B = 13; sekarang dalam format biner mereka akan menjadi sebagai berikut -
A = 0011 1100
B = 0000 1101
----------------------
A&B = 0000 1100
A | B = 0011 1101
A ^ B = 0011 0001
Operator Bitwise yang didukung oleh bahasa Tcl tercantum dalam tabel berikut. Asumsikan variabelA memegang 60 dan variabel B memegang 13, lalu -
Tunjukkan Contoh
Operator | Deskripsi | Contoh |
---|---|---|
& | Biner AND Operator menyalin sedikit ke hasil jika ada di kedua operan. | (A & B) akan menghasilkan 12, yaitu 0000 1100 |
| | Biner ATAU Operator menyalin sedikit jika ada di salah satu operan. | (A | B) akan menghasilkan 61, yaitu 0011 1101 |
^ | Operator Biner XOR menyalin bit jika diatur dalam satu operan tetapi tidak keduanya. | (A ^ B) akan menghasilkan 49, yaitu 0011 0001 |
<< | Operator Binary Left Shift. Nilai operan kiri dipindahkan ke kiri dengan jumlah bit yang ditentukan oleh operan kanan. | A << 2 akan menghasilkan 240, yaitu 1111 0000 |
>> | Operator Pergeseran Kanan Biner. Nilai operan kiri dipindahkan ke kanan dengan jumlah bit yang ditentukan oleh operan kanan. | A >> 2 akan menghasilkan 15, yaitu 0000 1111 |
Operator Ternary
Tunjukkan Contoh
Operator | Deskripsi | Contoh |
---|---|---|
? : | Ternary | Jika Kondisi benar? Kemudian nilai X: Jika tidak, nilai Y |
Operator Diutamakan di Tcl
Prioritas operator menentukan pengelompokan istilah dalam ekspresi. Ini memengaruhi bagaimana ekspresi dievaluasi. Operator tertentu memiliki prioritas lebih tinggi daripada yang lain; Misalnya, operator perkalian memiliki prioritas lebih tinggi daripada operator penjumlahan.
For example: x = 7 + 3 * 2; di sini, x ditetapkan 13, bukan 20 karena operator * memiliki prioritas lebih tinggi dari +, jadi pertama-tama dikalikan dengan 3 * 2 dan kemudian dijumlahkan menjadi 7.
Di sini, operator dengan prioritas tertinggi muncul di bagian atas tabel, operator dengan prioritas terendah muncul di bagian bawah. Dalam ekspresi, operator dengan prioritas lebih tinggi akan dievaluasi terlebih dahulu.
Tunjukkan Contoh
Kategori | Operator | Asosiatif |
---|---|---|
Unary | + - | Kanan ke kiri |
Perkalian | * /% | Kiri ke kanan |
Aditif | + - | Kiri ke kanan |
Bergeser | << >> | Kiri ke kanan |
Relasional | <<=>> = | Kiri ke kanan |
Bitwise DAN | & | Kiri ke kanan |
Bitwise XOR | ^ | Kiri ke kanan |
Bitwise ATAU | | | Kiri ke kanan |
DAN logis | && | Kiri ke kanan |
Logis ATAU | || | Kiri ke kanan |
Ternary | ?: | Kanan ke kiri |
Struktur pengambilan keputusan mengharuskan programmer menentukan satu atau lebih kondisi untuk dievaluasi atau diuji oleh program, bersama dengan pernyataan atau pernyataan yang akan dieksekusi jika kondisi ditentukan benar, dan secara opsional, pernyataan lain yang akan dieksekusi jika kondisinya ditentukan sebagai salah.
Berikut ini adalah bentuk umum dari struktur pengambilan keputusan khas yang ditemukan di sebagian besar bahasa pemrograman -
Bahasa Tcl menggunakan perintah expr secara internal dan oleh karena itu tidak diharuskan bagi kita untuk menggunakan pernyataan expr secara eksplisit.
Bahasa Tcl menyediakan jenis pernyataan pengambilan keputusan berikut -
Sr.No. | Pernyataan & Deskripsi |
---|---|
1 | jika pernyataan Pernyataan 'jika' terdiri dari ekspresi Boolean yang diikuti oleh satu atau beberapa pernyataan. |
2 | jika ... pernyataan lain Pernyataan 'if' dapat diikuti dengan pernyataan 'else' opsional, yang dieksekusi jika ekspresi Boolean salah. |
3 | pernyataan if bersarang Anda dapat menggunakan satu pernyataan 'if' atau 'else if' di dalam pernyataan 'if' atau 'else if' lainnya. |
4 | pernyataan switch SEBUAH switch pernyataan memungkinkan variabel untuk diuji kesetaraan terhadap daftar nilai. |
5 | pernyataan saklar bersarang Anda bisa menggunakannya switch pernyataan di dalam yang lain switch pernyataan. |
Itu? : Operator
Kami telah meliputnya conditional operator ? : di bab sebelumnya, yang bisa digunakan untuk menggantikan if...elsepernyataan. Ini memiliki bentuk umum berikut -
Exp1 ? Exp2 : Exp3;
Dimana Exp1, Exp2, dan Exp3 adalah ekspresi. Perhatikan penggunaan dan penempatan titik dua.
Nilai dari '? ekspresi 'ditentukan seperti ini: Exp1 dievaluasi. Jika benar, maka Exp2 dievaluasi dan menjadi nilai keseluruhan '? ekspresi.' Jika Exp1 salah, maka Exp3 dievaluasi dan nilainya menjadi nilai ekspresi. Contohnya ditunjukkan di bawah ini.
#!/usr/bin/tclsh
set a 10;
set b [expr $a == 1 ? 20: 30] puts "Value of b is $b\n"
set b [expr $a == 10 ? 20: 30] puts "Value of b is $b\n"
Ketika Anda mengkompilasi dan menjalankan program di atas, ini menghasilkan hasil sebagai berikut -
Value of b is 30
Value of b is 20
Mungkin ada situasi, di mana Anda perlu mengeksekusi blok kode beberapa kali. Secara umum, pernyataan dieksekusi secara berurutan: Pernyataan pertama dalam suatu fungsi dijalankan pertama, diikuti oleh yang kedua, dan seterusnya.
Bahasa pemrograman menyediakan berbagai struktur kontrol yang memungkinkan jalur eksekusi yang lebih rumit.
Pernyataan loop memungkinkan kita untuk mengeksekusi pernyataan atau sekelompok pernyataan beberapa kali dan berikut adalah bentuk umum dari pernyataan loop di sebagian besar bahasa pemrograman -
Bahasa Tcl menyediakan jenis loop berikut untuk menangani persyaratan perulangan.
Sr.No. | Jenis & Deskripsi Loop |
---|---|
1 | while loop Mengulangi pernyataan atau sekelompok pernyataan saat kondisi tertentu benar. Ini menguji kondisi sebelum menjalankan badan perulangan. |
2 | untuk loop Menjalankan urutan pernyataan beberapa kali dan menyingkat kode yang mengelola variabel loop. |
3 | loop bersarang Anda dapat menggunakan satu atau lebih loop di dalam while lainnya, for atau do.. while loop. |
Pernyataan Kontrol Loop
Pernyataan kontrol loop mengubah eksekusi dari urutan normalnya. Saat eksekusi meninggalkan ruang lingkup, semua objek otomatis yang dibuat dalam lingkup itu dimusnahkan.
Tcl mendukung pernyataan kontrol berikut.
Sr.No. | Pernyataan & Deskripsi Kontrol |
---|---|
1 | pernyataan istirahat Menghentikan pernyataan loop atau switch dan mentransfer eksekusi ke pernyataan segera setelah loop atau switch. |
2 | lanjutkan pernyataan Menyebabkan loop melewatkan sisa tubuhnya dan segera menguji ulang kondisinya sebelum mengulangi. |
Loop Tak Terbatas
Pengulangan menjadi pengulangan tanpa batas jika suatu kondisi tidak pernah menjadi salah. Ituwhileloop secara tradisional digunakan untuk tujuan ini. Anda dapat membuat loop tanpa akhir dengan membiarkan ekspresi kondisional sebagai 1.
while {1} {
puts "This loop will run forever."
}
Jika ekspresi kondisional tidak ada, maka dianggap benar. Pemrogram Tcl lebih umum menggunakan konstruksi while {1} untuk menandakan pengulangan tak terbatas.
NOTE - Anda dapat menghentikan loop tak terbatas dengan menekan tombol Ctrl + C.
Array adalah susunan sistematis dari sekelompok elemen menggunakan indeks. Sintaks untuk larik konvensional ditampilkan di bawah ini.
set ArrayName(Index) value
Contoh untuk membuat array sederhana ditunjukkan di bawah ini.
#!/usr/bin/tclsh
set languages(0) Tcl
set languages(1) "C Language"
puts $languages(0) puts $languages(1)
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Tcl
C Language
Ukuran Array
Sintaks untuk menghitung larik ukuran ditunjukkan di bawah ini.
[array size variablename]
Contoh untuk mencetak ukuran ditunjukkan di bawah ini.
#!/usr/bin/tclsh
set languages(0) Tcl
set languages(1) "C Language"
puts [array size languages]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
2
Array Iteration
Padahal, indeks array bisa jadi tidak kontinu seperti nilai yang ditentukan untuk indeks 1 lalu indeks 10 dan seterusnya. Tapi, jika mereka kontinu, kita dapat menggunakan iterasi array untuk mengakses elemen array. Iterasi larik sederhana untuk mencetak elemen larik ditampilkan di bawah ini.
#!/usr/bin/tclsh
set languages(0) Tcl
set languages(1) "C Language"
for { set index 0 } { $index < [array size languages] } { incr index } { puts "languages($index) : $languages($index)"
}
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
languages(0) : Tcl
languages(1) : C Language
Array Asosiatif
Di Tcl, semua larik pada dasarnya bersifat asosiatif. Array disimpan dan diambil tanpa urutan tertentu. Array asosiatif memiliki indeks yang tidak harus berupa angka, dan dapat diisi dengan jarang. Contoh sederhana untuk array asosiatif dengan indeks non-angka ditampilkan di bawah ini.
#!/usr/bin/tclsh
set personA(Name) "Dave"
set personA(Age) 14
puts $personA(Name) puts $personA(Age)
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Dave
14
Indeks Array
Sintaks untuk mengambil indeks larik ditampilkan di bawah ini.
[array names variablename]
Contoh untuk mencetak ukuran ditunjukkan di bawah ini.
#!/usr/bin/tclsh
set personA(Name) "Dave"
set personA(Age) 14
puts [array names personA]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Age Name
Iterasi dari Associative Array
Anda dapat menggunakan indeks array untuk melakukan iterasi melalui array asosiatif. Contohnya ditunjukkan di bawah ini.
#!/usr/bin/tclsh
set personA(Name) "Dave"
set personA(Age) 14
foreach index [array names personA] {
puts "personA($index): $personA($index)"
}
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
personA(Age): 14
personA(Name): Dave
Tipe data primitif dari Tcl adalah string dan seringkali kita dapat menemukan kutipan pada Tcl sebagai bahasa hanya string. String ini dapat berisi karakter alfanumerik, hanya angka, Boolean, atau bahkan data biner. Tcl menggunakan karakter unicode 16 bit dan karakter alfanumerik dapat berisi huruf termasuk karakter non-Latin, angka atau tanda baca.
Nilai Boolean dapat direpresentasikan sebagai 1, ya atau benar untuk benar dan 0, tidak, atau salah untuk salah.
Representasi String
Tidak seperti bahasa lain, di Tcl, Anda tidak perlu menyertakan tanda kutip ganda jika hanya ada satu kata. Contohnya bisa -
#!/usr/bin/tclsh
set myVariable hello
puts $myVariable
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
hello
Saat kita ingin merepresentasikan beberapa string, kita bisa menggunakan tanda kutip ganda atau kurung kurawal. Itu ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set myVariable "hello world"
puts $myVariable set myVariable {hello world} puts $myVariable
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
hello world
hello world
String Escape Sequence
Literal karakter dapat berupa karakter biasa (mis., 'X'), urutan escape (mis., '\ T'), atau karakter universal (mis., '\ U02C0').
Ada beberapa karakter dalam Tcl yang diawali dengan garis miring terbalik, mereka akan memiliki arti khusus dan digunakan untuk merepresentasikan seperti baris baru (\ n) atau tab (\ t). Di sini, Anda memiliki daftar beberapa kode urutan pelolosan tersebut -
Urutan pelarian | Berarti |
---|---|
\\ | \ karakter |
\ ' | 'karakter |
\ " | "karakter |
\? | ? karakter |
\Sebuah | Peringatan atau bel |
\ b | Menghapus |
\ f | Bentuk pakan |
\ n | Garis baru |
\ r | Kereta kembali |
\ t | Tab horizontal |
\ v | Tab vertikal |
Berikut adalah contoh untuk menunjukkan beberapa karakter urutan pelolosan -
#!/usr/bin/tclsh
puts "Hello\tWorld\n\nTutorialspoint";
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
Hello World
Tutorialspoint
Perintah String
Daftar subperintah untuk perintah string tercantum dalam tabel berikut ini -
Sr.No. | Metode & Deskripsi |
---|---|
1 | compare string1 string2 Membandingkan string1 dan string2 secara leksografis. Mengembalikan 0 jika sama, -1 jika string1 datang sebelum string2, else 1. |
2 | first string1 string2 Mengembalikan indeks kemunculan pertama dari string1 dalam string2. Jika tidak ditemukan, mengembalikan -1. |
3 | index indeks string Mengembalikan karakter pada indeks. |
4 | last string1 string2 Mengembalikan indeks kemunculan terakhir string1 dalam string2. Jika tidak ditemukan, mengembalikan -1. |
5 | length tali Mengembalikan panjang string. |
6 | match pattern tali Mengembalikan 1 jika string cocok dengan pola. |
7 | range string index1 index2 Kembalikan rentang karakter dalam string dari indeks1 ke indeks2. |
8 | tolower tali Mengembalikan string huruf kecil. |
9 | toupper tali Mengembalikan string huruf besar. |
10 | trim string? trimcharacters? Menghapus karakter trim di kedua ujung string. Karakter trim default adalah spasi. |
11 | trimleft string? trimcharacters? Menghapus karakter trim di awal kiri string. Karakter trim default adalah spasi. |
12 | trimright string? trimcharacters? Menghapus karakter trim di ujung kiri string. Karakter trim default adalah spasi. |
13 | wordend indeks findstring Kembalikan indeks dalam string pencarian karakter setelah kata yang berisi karakter pada indeks. |
14 | wordstart indeks findstring Kembalikan indeks dalam string pencarian dari karakter pertama pada kata yang berisi karakter pada indeks. |
Contoh dari beberapa sub perintah string Tcl yang umum digunakan diberikan di bawah ini.
Perbandingan String
#!/usr/bin/tclsh
set s1 "Hello"
set s2 "World"
set s3 "World"
puts [string compare $s1 $s2]
if {[string compare $s2 $s3] == 0} {
puts "String \'s1\' and \'s2\' are same.";
}
if {[string compare $s1 $s2] == -1} {
puts "String \'s1\' comes before \'s2\'.";
}
if {[string compare $s2 $s1] == 1} {
puts "String \'s2\' comes after \'s1\'.";
}
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
-1
String 's1' and 's2' are same.
String 's1' comes before 's2'.
String 's2' comes after 's1'.
Indeks String
#!/usr/bin/tclsh
set s1 "Hello World"
set s2 "o"
puts "First occurrence of $s2 in s1" puts [string first $s2 $s1] puts "Character at index 0 in s1" puts [string index $s1 0]
puts "Last occurrence of $s2 in s1" puts [string last $s2 $s1] puts "Word end index in s1" puts [string wordend $s1 20]
puts "Word start index in s1"
puts [string wordstart $s1 20]
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
First occurrence of o in s1
4
Character at index 0 in s1
H
Last occurrence of o in s1
7
Word end index in s1
11
Word start index in s1
6
Panjang String
#!/usr/bin/tclsh
set s1 "Hello World"
puts "Length of string s1"
puts [string length $s1]
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
Length of string s1
11
Menangani Kasus
#!/usr/bin/tclsh
set s1 "Hello World"
puts "Uppercase string of s1"
puts [string toupper $s1] puts "Lowercase string of s1" puts [string tolower $s1]
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
Uppercase string of s1
HELLO WORLD
Lowercase string of s1
hello world
Karakter Pemangkasan
#!/usr/bin/tclsh
set s1 "Hello World"
set s2 "World"
puts "Trim right $s2 in $s1"
puts [string trimright $s1 $s2]
set s2 "Hello"
puts "Trim left $s2 in $s1"
puts [string trimleft $s1 $s2]
set s1 " Hello World "
set s2 " "
puts "Trim characters s1 on both sides of s2"
puts [string trim $s1 $s2]
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
Trim right World in Hello World
Hello
Trim left Hello in Hello World
World
Trim characters s1 on both sides of s2
Hello World
String yang Cocok
#!/usr/bin/tclsh
set s1 "[email protected]"
set s2 "*@*.com"
puts "Matching pattern s2 in s1"
puts [string match "*@*.com" $s1 ] puts "Matching pattern tcl in s1" puts [string match {tcl} $s1]
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
Matching pattern s2 in s1
1
Matching pattern tcl in s1
0
Tambahkan Perintah
#!/usr/bin/tclsh
set s1 "Hello"
append s1 " World"
puts $s1
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
Hello World
Perintah format
Tabel berikut menunjukkan daftar penentu format yang tersedia di Tcl -
Penentu | Menggunakan |
---|---|
% s | Representasi string |
% d | Representasi bilangan bulat |
% f | Representasi floating point |
% e | Representasi floating point dengan bentuk mantissa-eksponen |
% x | Representasi desimal heksa |
Beberapa contoh sederhana diberikan di bawah ini -
#!/usr/bin/tclsh
puts [format "%f" 43.5]
puts [format "%e" 43.5]
puts [format "%d %s" 4 tuts]
puts [format "%s" "Tcl Language"]
puts [format "%x" 40]
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
43.500000
4.350000e+01
4 tuts
Tcl Language
28
Perintah pindai
Perintah scan digunakan untuk mem-parsing string berdasarkan penentu format. Beberapa contoh ditunjukkan di bawah ini.
#!/usr/bin/tclsh
puts [scan "90" {%[0-9]} m]
puts [scan "abc" {%[a-z]} m]
puts [scan "abc" {%[A-Z]} m]
puts [scan "ABC" {%[A-Z]} m]
Ketika kode di atas dikompilasi dan dijalankan, itu menghasilkan hasil sebagai berikut -
1
1
0
1
Daftar adalah salah satu tipe data dasar yang tersedia di Tcl. Ini digunakan untuk mewakili koleksi item yang dipesan. Ini dapat mencakup berbagai jenis item dalam daftar yang sama. Selanjutnya, daftar dapat berisi daftar lain.
Satu hal penting yang perlu diperhatikan adalah bahwa daftar ini direpresentasikan sebagai string secara lengkap dan diproses untuk membentuk item individual bila diperlukan. Jadi, hindari daftar besar dan dalam kasus seperti itu; menggunakan array.
Membuat Daftar
Sintaks umum untuk daftar diberikan di bawah ini -
set listName { item1 item2 item3 .. itemn }
# or
set listName [list item1 item2 item3]
# or
set listName [split "items separated by a character" split_character]
Beberapa contoh diberikan di bawah ini -
#!/usr/bin/tclsh
set colorList1 {red green blue}
set colorList2 [list red green blue]
set colorList3 [split "red_green_blue" _]
puts $colorList1
puts $colorList2 puts $colorList3
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
red green blue
red green blue
red green blue
Menambahkan Item ke Daftar
Sintaks untuk menambahkan item ke daftar diberikan di bawah ini -
append listName split_character value
# or
lappend listName value
Beberapa contoh diberikan di bawah ini -
#!/usr/bin/tclsh
set var orange
append var " " "blue"
lappend var "red"
lappend var "green"
puts $var
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
orange blue red green
Panjang Daftar
Sintaks untuk panjang daftar diberikan di bawah ini -
llength listName
Contoh panjang daftar diberikan di bawah -
#!/usr/bin/tclsh
set var {orange blue red green}
puts [llength $var]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
4
Daftar Item di Indeks
Sintaks untuk memilih item daftar pada indeks tertentu diberikan di bawah ini -
lindex listname index
Contoh untuk item daftar pada indeks diberikan di bawah ini -
#!/usr/bin/tclsh
set var {orange blue red green}
puts [lindex $var 1]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
blue
Sisipkan Item di Indeks
Sintaks untuk memasukkan item daftar pada indeks tertentu diberikan di bawah ini.
linsert listname index value1 value2..valuen
Contoh untuk memasukkan item daftar pada indeks tertentu diberikan di bawah ini.
#!/usr/bin/tclsh
set var {orange blue red green}
set var [linsert $var 3 black white]
puts $var
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
orange blue red black white green
Ganti Item di Indeks
Sintaks untuk mengganti item daftar pada indeks tertentu diberikan di bawah ini -
lreplace listname firstindex lastindex value1 value2..valuen
Contoh untuk mengganti item daftar pada indeks tertentu diberikan di bawah ini.
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lreplace $var 2 3 black white]
puts $var
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
orange blue black white
Tetapkan Item pada Indeks
Sintaks untuk item daftar pengaturan pada indeks tertentu diberikan di bawah ini -
lset listname index value
Contoh untuk mengatur item daftar pada indeks tertentu diberikan di bawah ini -
#!/usr/bin/tclsh
set var {orange blue red green}
lset var 0 black
puts $var
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
black blue red green
Ubah Daftar menjadi Variabel
Sintaks untuk menyalin nilai ke variabel diberikan di bawah ini -
lassign listname variable1 variable2.. variablen
Contoh untuk mengubah daftar menjadi variabel diberikan di bawah ini -
#!/usr/bin/tclsh
set var {orange blue red green}
lassign $var colour1 colour2 puts $colour1
puts $colour2
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
orange
blue
Menyortir Daftar
Sintaks untuk mengurutkan daftar diberikan di bawah ini -
lsort listname
Contoh untuk menyortir daftar diberikan di bawah ini -
#!/usr/bin/tclsh
set var {orange blue red green}
set var [lsort $var]
puts $var
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
blue green orange red
Kamus adalah pengaturan untuk memetakan nilai ke kunci. Sintaks untuk kamus konvensional ditunjukkan di bawah ini -
dict set dictname key value
# or
dict create dictname key1 value1 key2 value2 .. keyn valuen
Beberapa contoh untuk membuat kamus ditunjukkan di bawah -
#!/usr/bin/tclsh
dict set colours colour1 red
puts $colours
dict set colours colour2 green
puts $colours set colours [dict create colour1 "black" colour2 "white"] puts $colours
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
colour1 red
colour1 red colour2 green
colour1 black colour2 white
Ukuran Dict
Sintaks untuk mendapatkan ukuran dict ditunjukkan di bawah ini -
[dict size dictname]
Contoh untuk mencetak ukuran ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set colours [dict create colour1 "black" colour2 "white"]
puts [dict size $colours]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
2
Iterasi Kamus
Sebuah iterasi kamus sederhana untuk mencetak kunci dan nilai kamus ditunjukkan di bawah -
#!/usr/bin/tclsh
set colours [dict create colour1 "black" colour2 "white"]
foreach item [dict keys $colours] {
set value [dict get $colours $item]
puts $value
}
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
black
white
Nilai untuk Key in Dict
Sintaks untuk mengambil nilai kunci dalam dict ditunjukkan di bawah ini -
[dict get $dictname $keyname]
Contoh untuk mengambil nilai untuk kunci diberikan di bawah ini -
#!/usr/bin/tclsh
set colours [dict create colour1 "black" colour2 "white"]
set value [dict get $colours colour1]
puts $value
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
black
Semua Kunci di Dict
Sintaks untuk mengambil semua kunci dalam dict ditunjukkan di bawah ini -
[dict keys $dictname]
Contoh untuk mencetak semua kunci ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set colours [dict create colour1 "black" colour2 "white"]
set keys [dict keys $colours] puts $keys
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
colour1 colour2
Semua Nilai di Dict
Sintaks untuk mengambil semua nilai dalam dict ditunjukkan di bawah ini -
[dict values $dictname]
Contoh untuk mencetak semua nilai ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set colours [dict create colour1 "black" colour2 "white"]
set values [dict values $colours]
puts $values
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
black white
Kunci Ada di Dict
Sintaks untuk memeriksa apakah ada kunci dalam dict ditunjukkan di bawah ini -
[dict exists $dictname $key]
Contoh untuk memeriksa apakah ada kunci di dict ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set colours [dict create colour1 "black" colour2 "white"]
set result [dict exists $colours colour1]
puts $result
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
1
Prosedur tidak lain adalah blok kode dengan serangkaian perintah yang menyediakan fungsionalitas khusus yang dapat digunakan kembali. Ini digunakan untuk menghindari pengulangan kode yang sama di beberapa lokasi. Prosedur setara dengan fungsi yang digunakan dalam banyak bahasa pemrograman dan tersedia di Tcl dengan bantuanproc perintah.
Sintaks untuk membuat prosedur sederhana ditunjukkan di bawah ini -
proc procedureName {arguments} {
body
}
Contoh sederhana untuk prosedur diberikan di bawah ini -
#!/usr/bin/tclsh
proc helloWorld {} {
puts "Hello, World!"
}
helloWorld
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Hello, World!
Prosedur dengan Banyak Argumen
Contoh untuk prosedur dengan argumen ditunjukkan di bawah ini -
#!/usr/bin/tclsh
proc add {a b} {
return [expr $a+$b]
}
puts [add 10 30]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
40
Prosedur dengan Argumen Variabel
Contoh untuk prosedur dengan argumen ditunjukkan di bawah ini -
#!/usr/bin/tclsh
proc avg {numbers} {
set sum 0
foreach number $numbers {
set sum [expr $sum + $number]
}
set average [expr $sum/[llength $numbers]]
return $average
}
puts [avg {70 80 50 60}]
puts [avg {70 80 50 }]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
65
66
Prosedur dengan Argumen Default
Argumen default digunakan untuk memberikan nilai default yang dapat digunakan jika tidak ada nilai yang diberikan. Contoh untuk prosedur dengan argumen default, yang terkadang disebut sebagai argumen implisit ditampilkan di bawah ini -
#!/usr/bin/tclsh
proc add {a {b 100} } {
return [expr $a+$b]
}
puts [add 10 30]
puts [add 10]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
40
110
Prosedur Rekursif
Contoh untuk prosedur rekursif ditunjukkan di bawah ini -
#!/usr/bin/tclsh
proc factorial {number} {
if {$number <= 1} {
return 1
}
return [expr $number * [factorial [expr $number - 1]]]
}
puts [factorial 3]
puts [factorial 5]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
6
120
Paket digunakan untuk membuat unit kode yang dapat digunakan kembali. Paket terdiri dari kumpulan file yang menyediakan fungsionalitas tertentu. Kumpulan file ini diidentifikasi dengan nama paket dan dapat memiliki beberapa versi file yang sama. Paket dapat berupa kumpulan skrip Tcl, pustaka biner, atau kombinasi keduanya.
Paket menggunakan konsep namespace untuk menghindari benturan nama variabel dan nama prosedur. Lihat lebih lanjut di tutorial ' namespace ' kami berikutnya .
Membuat Paket
Sebuah paket dapat dibuat dengan bantuan minimal dua file. Satu file berisi kode paket. File lain berisi file paket indeks untuk mendeklarasikan paket Anda.
Daftar langkah-langkah untuk membuat dan menggunakan paket diberikan di bawah ini.
LANGKAH 1: Membuat Kode
Buat kode untuk paket di dalam folder, katakan HelloWorld. Biarkan file diberi nama HelloWorld.tcl dengan kode seperti di bawah ini -
# /Users/rajkumar/Desktop/helloworld/HelloWorld.tcl
# Create the namespace
namespace eval ::HelloWorld {
# Export MyProcedure
namespace export MyProcedure
# My Variables
set version 1.0
set MyDescription "HelloWorld"
# Variable for the path of the script
variable home [file join [pwd] [file dirname [info script]]]
}
# Definition of the procedure MyProcedure
proc ::HelloWorld::MyProcedure {} {
puts $HelloWorld::MyDescription } package provide HelloWorld $HelloWorld::version
package require Tcl 8.0
LANGKAH 2: Membuat Indeks Paket
Buka tclsh. Beralih ke direktori HelloWorld dan gunakan perintah pkg_mkIndex untuk membuat file indeks seperti yang ditunjukkan di bawah ini -
% cd /Users/rajkumar/Desktop/helloworld
% pkg_mkIndex . *.tcl
LANGKAH 3: Menambahkan Direktori ke Autopath
Gunakan perintah lappend untuk menambahkan paket ke daftar global seperti yang ditunjukkan di bawah ini -
% lappend auto_path "/Users/rajkumar/Desktop/helloworld"
LANGKAH 4: Menambahkan Paket
Selanjutnya tambahkan paket ke program menggunakan pernyataan paket membutuhkan seperti yang ditunjukkan di bawah ini -
% package require HelloWorld 1.0
LANGKAH 5: Prosedur Permintaan
Sekarang, semuanya sudah diatur, kita dapat menjalankan prosedur kita seperti yang ditunjukkan di bawah ini -
% puts [HelloWorld::MyProcedure]
Anda akan mendapatkan hasil sebagai berikut -
HelloWorld
Dua langkah pertama membuat paket. Setelah paket dibuat, Anda dapat menggunakannya di file Tcl mana pun dengan menambahkan tiga pernyataan terakhir seperti yang ditunjukkan di bawah ini -
lappend auto_path "/Users/rajkumar/Desktop/helloworld"
package require HelloWorld 1.0
puts [HelloWorld::MyProcedure]
Anda akan mendapatkan hasil sebagai berikut -
HelloWorld
Namespace adalah wadah untuk sekumpulan pengenal yang digunakan untuk mengelompokkan variabel dan prosedur. Namespaces tersedia dari Tcl versi 8.0. Sebelum ruang nama diperkenalkan, ada satu cakupan global. Sekarang dengan namespace, kami memiliki partisi tambahan dalam lingkup global.
Membuat Namespace
Namespaces dibuat menggunakan namespaceperintah. Contoh sederhana untuk membuat namespace ditunjukkan di bawah ini -
#!/usr/bin/tclsh
namespace eval MyMath {
# Create a variable inside the namespace
variable myResult
}
# Create procedures inside the namespace
proc MyMath::Add {a b } {
set ::MyMath::myResult [expr $a + $b]
}
MyMath::Add 10 23
puts $::MyMath::myResult
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
33
Pada program di atas, Anda bisa melihat ada namespace dengan variabel myResult dan prosedur Add. Ini memungkinkan untuk membuat variabel dan prosedur dengan nama yang sama di bawah ruang nama yang berbeda.
Namespaces Bersarang
Tcl memungkinkan penumpukan namespace. Contoh sederhana untuk ruang nama bersarang diberikan di bawah ini -
#!/usr/bin/tclsh
namespace eval MyMath {
# Create a variable inside the namespace
variable myResult
}
namespace eval extendedMath {
# Create a variable inside the namespace
namespace eval MyMath {
# Create a variable inside the namespace
variable myResult
}
}
set ::MyMath::myResult "test1"
puts $::MyMath::myResult
set ::extendedMath::MyMath::myResult "test2"
puts $::extendedMath::MyMath::myResult
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
test1
test2
Mengimpor dan Mengekspor Namespace
Anda dapat melihat pada contoh namespace sebelumnya, kami menggunakan banyak operator resolusi cakupan dan lebih kompleks untuk digunakan. Kita dapat menghindari ini dengan mengimpor dan mengekspor namespace. Contoh diberikan di bawah ini -
#!/usr/bin/tclsh
namespace eval MyMath {
# Create a variable inside the namespace
variable myResult
namespace export Add
}
# Create procedures inside the namespace
proc MyMath::Add {a b } {
return [expr $a + $b]
}
namespace import MyMath::*
puts [Add 10 30]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
40
Lupakan Namespace
Anda dapat menghapus namespace yang diimpor dengan menggunakan forgetsubperintah. Contoh sederhana ditunjukkan di bawah ini -
#!/usr/bin/tclsh
namespace eval MyMath {
# Create a variable inside the namespace
variable myResult
namespace export Add
}
# Create procedures inside the namespace
proc MyMath::Add {a b } {
return [expr $a + $b]
}
namespace import MyMath::*
puts [Add 10 30]
namespace forget MyMath::*
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
40
Tcl mendukung penanganan file dengan bantuan perintah bawaan buka, baca, letakkan, dapatkan, dan tutup.
File mewakili urutan byte, tidak masalah apakah itu file teks atau file biner.
Membuka File
Tcl menggunakan perintah buka untuk membuka file di Tcl. Sintaks untuk membuka file adalah sebagai berikut -
open fileName accessMode
Sini, filename adalah string literal, yang akan Anda gunakan untuk memberi nama file dan accessMode dapat memiliki salah satu dari nilai berikut -
Sr.No. | Mode & Deskripsi |
---|---|
1 | r Membuka file teks yang ada untuk tujuan membaca dan file tersebut harus ada. Ini adalah mode default yang digunakan ketika tidak ada accessMode yang ditentukan. |
2 | w Membuka file teks untuk menulis, jika tidak ada, maka file baru dibuat jika file yang sudah ada terpotong. |
3 | a Membuka file teks untuk menulis dalam mode appending dan file harus ada. Di sini, program Anda akan mulai menambahkan konten di konten file yang sudah ada. |
4 | r+ Membuka file teks untuk membaca dan menulis keduanya. File harus sudah ada. |
5 | w+ Membuka file teks untuk membaca dan menulis keduanya. Ini pertama-tama memotong file menjadi panjang nol jika ada jika tidak membuat file jika tidak ada. |
6 | a+ Membuka file teks untuk membaca dan menulis keduanya. Ini membuat file jika tidak ada. Pembacaan akan dimulai dari awal, tetapi tulisan hanya dapat ditambahkan. |
Menutup File
Untuk menutup file, gunakan perintah tutup. Sintaks untuk close adalah sebagai berikut -
close fileName
File apa pun yang telah dibuka oleh program harus ditutup ketika program selesai menggunakan file itu. Dalam kebanyakan kasus, file tidak perlu ditutup secara eksplisit; mereka ditutup secara otomatis ketika objek File dihentikan secara otomatis.
Menulis File
Perintah Puts digunakan untuk menulis ke file yang terbuka.
puts $filename "text to write"
Contoh sederhana untuk menulis ke file ditunjukkan di bawah ini.
#!/usr/bin/tclsh
set fp [open "input.txt" w+]
puts $fp "test" close $fp
Ketika kode di atas dikompilasi dan dijalankan, itu membuat file baru input.txt di direktori yang telah dimulai (di direktori kerja program).
Membaca File
Berikut adalah perintah sederhana untuk membaca dari file -
set file_data [read $fp]
Contoh lengkap membaca dan menulis ditunjukkan di bawah ini -
#!/usr/bin/tclsh
set fp [open "input.txt" w+]
puts $fp "test"
close $fp set fp [open "input.txt" r] set file_data [read $fp]
puts $file_data close $fp
Ketika kode di atas dikompilasi dan dijalankan, ia membaca file yang dibuat di bagian sebelumnya dan menghasilkan hasil sebagai berikut -
test
Berikut adalah contoh lain untuk membaca file hingga akhir baris file demi baris -
#!/usr/bin/tclsh
set fp [open "input.txt" w+]
puts $fp "test\ntest" close $fp
set fp [open "input.txt" r]
while { [gets $fp data] >= 0 } { puts $data
}
close $fp
Ketika kode di atas dikompilasi dan dijalankan, ia membaca file yang dibuat di bagian sebelumnya dan menghasilkan hasil sebagai berikut -
test
test
Penanganan kesalahan di Tcl disediakan dengan bantuan error dan catchperintah. Sintaks untuk masing-masing perintah ini ditampilkan di bawah.
Kesalahan sintaks
error message info code
Dalam sintaks perintah kesalahan di atas, pesan adalah pesan kesalahan, info diatur dalam errorInfo variabel global dan kode diatur dalam errorCode variabel global.
Tangkap Sintaks
catch script resultVarName
Dalam sintaks perintah catch di atas, script adalah kode yang akan dieksekusi, resultVarName adalah variabel yang menahan kesalahan atau hasilnya. Perintah catch mengembalikan 0 jika tidak ada kesalahan, dan 1 jika ada kesalahan.
Contoh penanganan kesalahan sederhana ditunjukkan di bawah ini -
#!/usr/bin/tclsh
proc Div {a b} {
if {$b == 0} {
error "Error generated by error" "Info String for error" 401
} else {
return [expr $a/$b]
}
}
if {[catch {puts "Result = [Div 10 0]"} errmsg]} {
puts "ErrorMsg: $errmsg" puts "ErrorCode: $errorCode"
puts "ErrorInfo:\n$errorInfo\n" } if {[catch {puts "Result = [Div 10 2]"} errmsg]} { puts "ErrorMsg: $errmsg"
puts "ErrorCode: $errorCode" puts "ErrorInfo:\n$errorInfo\n"
}
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
ErrorMsg: Error generated by error
ErrorCode: 401
ErrorInfo:
Info String for error
(procedure "Div" line 1)
invoked from within
"Div 10 0"
Result = 5
Seperti yang Anda lihat pada contoh di atas, kami dapat membuat pesan kesalahan khusus kami sendiri. Demikian pula, dimungkinkan untuk menangkap kesalahan yang dihasilkan oleh Tcl. Contohnya ditunjukkan di bawah ini -
#!/usr/bin/tclsh
catch {set file [open myNonexistingfile.txt]} result
puts "ErrorMsg: $result" puts "ErrorCode: $errorCode"
puts "ErrorInfo:\n$errorInfo\n"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
ErrorMsg: couldn't open "myNonexistingfile.txt": no such file or directory
ErrorCode: POSIX ENOENT {no such file or directory}
ErrorInfo:
couldn't open "myNonexistingfile.txt": no such file or directory
while executing
"open myNonexistingfile.txt"
Tcl menyediakan sejumlah fungsi (prosedur) bawaan untuk berbagai operasi. Ini termasuk -
Fungsi penanganan daftar .
Fungsi penanganan string .
Fungsi penanganan larik .
Fungsi penanganan kamus .
Fungsi penanganan File I / O.
Berfungsi untuk membuat ruang nama dan paket.
Fungsi untuk operasi Matematika.
Fungsi untuk operasi Sistem.
Masing-masing hal di atas kecuali fungsi matematika dan sistem telah dibahas di bab sebelumnya. Matematika dan fungsi built-in sistem dijelaskan di bawah ini.
Fungsi Matematika
Fungsi matematika yang tersedia di Tcl tercantum dalam tabel berikut -
Sr.No. | Metode & Deskripsi |
---|---|
1 | abs arg Menghitung nilai absolut dari arg. |
2 | acos arg Menghitung arccosine dari arg. |
3 | asin arg Menghitung busur dari arg. |
4 | atan arg Menghitung arkangen dari arg. |
5 | atan2 yx Menghitung arkangen hasil bagi dari argumennya (y / x). |
6 | ceil arg Menghitung bilangan bulat terkecil yang lebih besar dari atau sama dengan angka. |
7 | cos arg Menghitung kosinus arg. |
8 | cosh arg Menghitung kosinus hiperbolik arg. |
9 | double arg Menghitung jika arg adalah nilai floating-point, mengembalikan arg, jika tidak mengonversi arg menjadi floating-point dan mengembalikan nilai yang dikonversi. |
10 | exp arg Menghitung fungsi eksponensial (e pangkat dari arg). |
11 | floor arg Menghitung bilangan bulat terbesar kurang dari atau sama dengan arg. |
12 | fmod xy Menghitung sisa floating-point dari pembagian x dengan y. Jika y adalah 0, kesalahan dikembalikan. |
13 | hypot xy Menghitung panjang hipotenusa dari segitiga siku-siku akar persegi (x * x + y * y). |
14 | int arg Menghitung jika arg adalah nilai bilangan bulat dengan lebar yang sama dengan kata mesin, mengembalikan arg, jika tidak, mengonversi arg menjadi bilangan bulat. |
15 | log arg Menghitung logaritma natural arg. |
16 | log10 arg Menghitung logaritma basis 10 dari arg. |
17 | pow xy Menghitung nilai x yang dipangkatkan y. Jika x negatif, y harus berupa nilai integer. |
18 | rand Menghitung angka acak semu antara 0 dan 1. |
19 | round arg Menghitung nilai arg yang dibulatkan ke bilangan bulat terdekat. |
20 | sin arg Menghitung sinus arg. |
21 | sinh arg Menghitung sinus hiperbolik arg. |
22 | sqrt arg Menghitung akar kuadrat dari arg. arg harus positif. |
23 | srand arg Menghitung bilangan pseudo-acak antara 0 dan 1. Arg, yang harus berupa bilangan bulat, digunakan untuk menyetel ulang seed untuk pembuat bilangan acak rand. |
24 | tan arg Menghitung tangen dari arg. |
25 | tanh arg Menghitung tangen hiperbolik dari arg. |
26 | wide arg Menghitung nilai integer setidaknya dengan lebar 64-bit (dengan ekstensi tanda jika arg adalah angka 32-bit) untuk arg jika belum ada. |
Beberapa contoh menggunakan fungsi matematika diberikan di bawah ini -
#!/usr/bin/tclsh
namespace import ::tcl::mathfunc::*
puts [tan 10]
puts [pow 10 2]
puts [ceil 10.34]
puts [hypot 10 20]
puts [srand 45]
puts [log 10]
puts [srand 45]
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
0.6483608274590866
100.0
11.0
22.360679774997898
0.0003521866166741525
2.302585092994046
0.0003521866166741525
Fungsi Sistem
Fungsi sistem penting di Tcl meliputi,
clock - Fungsi detik, yang mengembalikan waktu saat ini dalam hitungan detik.
clock - Fungsi format, yang memformat detik menjadi tanggal dan waktu.
clock - Fungsi scan, yang memindai string input dan mengubahnya menjadi detik.
open - fungsi, yang digunakan untuk membuka file.
exec - fungsi, yang digunakan untuk menjalankan perintah sistem.
close - fungsi, yang digunakan untuk menutup file.
Beberapa contoh untuk fungsi di atas tercantum di bawah -
#!/usr/bin/tclsh
#get seconds
set currentTime [clock seconds]
puts $currentTime
#get format
puts "The time is: [clock format $currentTime -format %H:%M:%S]" puts "The date is: [clock format $currentTime -format %D]"
set date "Jun 15, 2014"
puts [clock scan $date -format {%b %d, %Y}] puts [exec ls] puts [exec dir] set a [open input.txt] puts [read $a];
puts $a close $a
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
1402819756
The time is: 03:09:16
The date is: 06/15/2014
1402808400
input.txt
main.tcl
input.txt main.tcl
This is the file you can use to provide input to your program and later on open
it inside your program to process the input.
file3
Tabel berikut menyediakan daftar string yang dapat digunakan untuk memformat tanggal dan waktu.
Sr.No. | Format & Deskripsi |
---|---|
1 | %a Hari dalam bentuk singkat, misalnya: Matahari. |
2 | %A Hari dalam bentuk penuh misalnya: Minggu. |
3 | %b Sebulan dalam bentuk singkat. |
4 | %B Bulan dalam bentuk penuh. |
5 | %d Hari dalam sebulan. |
6 | %j Hari Julian dalam setahun. |
7 | %m Bulan dalam angka. |
8 | %y Tahun dalam dua digit. |
9 | %Y Tahun dalam empat digit. |
10 | %H Jam dalam format 24 jam. |
11 | %I Jam dalam format 12 jam. |
12 | %M Menit. |
13 | %S Detik. |
14 | %p AM atau PM. |
15 | %D Tanggal dalam angka, bb / hh / ttt. |
16 | %r Waktu dalam format 12 jam. |
17 | %R Waktu dalam format 24 jam tanpa detik. |
18 | %T Waktu dalam format 24 jam dengan detik. |
19 | %Z Nama Zona Waktu seperti GMT, IST, EST, dan sebagainya. |
Perintah "regexp" digunakan untuk mencocokkan ekspresi reguler di Tcl. Ekspresi reguler adalah rangkaian karakter yang berisi pola pencarian. Ini terdiri dari beberapa aturan dan tabel berikut menjelaskan aturan ini dan penggunaan yang sesuai.
Sr.No. | Aturan & Deskripsi |
---|---|
1 | x Benar-benar cocok. |
2 | [a-z] Semua huruf kecil dari az. |
3 | . Karakter apapun. |
4 | ^ String awal harus cocok. |
5 | $ String akhir harus cocok. |
6 | \^ Urutan backlash untuk mencocokkan karakter khusus ^. Demikian pula yang dapat Anda gunakan untuk karakter lain. |
7 | () Tambahkan urutan di atas di dalam tanda kurung untuk membuat ekspresi reguler. |
8 | x* Harus cocok dengan 0 atau lebih kemunculan x sebelumnya. |
9 | x+ Harus cocok dengan 1 atau lebih kemunculan dari x sebelumnya. |
10 | [a-z]? Harus cocok dengan 0 atau 1 kemunculan x sebelumnya. |
11 | {digit} Cocok persis dengan digit kemunculan ekspresi regex sebelumnya. Digit yang berisi 0-9. |
12 | {digit,} Cocok dengan 3 digit atau lebih kemunculan ekspresi regex sebelumnya. Digit yang berisi 0-9. |
13 | {digit1,digit2} Kejadian cocok dengan rentang antara digit1 dan digit2 kemunculan ekspresi regex sebelumnya. |
Sintaksis
Sintaks untuk regex diberikan di bawah ini -
regexp optionalSwitches patterns searchString fullMatch subMatch1 ... subMatchn
Di sini, regex adalah perintahnya. Kita akan melihat tentang sakelar opsional nanti. Pola adalah aturan seperti yang disebutkan sebelumnya. String pencarian adalah string sebenarnya tempat regex dijalankan. Pencocokan penuh adalah variabel apa pun untuk menahan hasil dari hasil regex yang cocok. Submatch1 to SubMatchn adalah variabel subMatch opsional yang menyimpan hasil dari pola sub match.
Mari kita lihat beberapa contoh sederhana sebelum menyelami yang rumit. Contoh sederhana untuk string dengan huruf apa pun. Ketika karakter lain ditemukan regex, pencarian akan dihentikan dan dikembalikan.
#!/usr/bin/tclsh
regexp {([A-Za-z]*)} "Tcl Tutorial" a b
puts "Full Match: $a"
puts "Sub Match1: $b"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Full Match: Tcl
Sub Match1: Tcl
Beberapa Pola
Contoh berikut menunjukkan cara mencari beberapa pola. Ini adalah contoh pola untuk huruf apapun yang diikuti dengan karakter apapun yang diikuti oleh huruf apapun.
#!/usr/bin/tclsh
regexp {([A-Za-z]*).([A-Za-z]*)} "Tcl Tutorial" a b c
puts "Full Match: $a"
puts "Sub Match1: $b" puts "Sub Match2: $c"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Full Match: Tcl Tutorial
Sub Match1: Tcl
Sub Match2: Tutorial
Versi modifikasi dari kode di atas untuk menunjukkan bahwa sub pola dapat berisi banyak pola ditunjukkan di bawah -
#!/usr/bin/tclsh
regexp {([A-Za-z]*.([A-Za-z]*))} "Tcl Tutorial" a b c
puts "Full Match: $a" puts "Sub Match1: $b"
puts "Sub Match2: $c"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Full Match: Tcl Tutorial
Sub Match1: Tcl Tutorial
Sub Match2: Tutorial
Sakelar untuk Perintah Regex
Daftar sakelar yang tersedia di Tcl adalah,
nocase - Digunakan untuk mengabaikan kasus.
indices - Simpan lokasi sub pola yang cocok, bukan karakter yang cocok.
line- Pencocokan sensitif baris baru. Mengabaikan karakter setelah baris baru.
start index - Mengatur offset awal pola pencarian.
Menandai akhir sakelar
Dalam contoh di atas, saya sengaja menggunakan [AZ, az] untuk semua huruf, Anda dapat dengan mudah menggunakan -nocase daripada seperti yang ditunjukkan di bawah ini -
#!/usr/bin/tclsh
regexp -nocase {([A-Z]*.([A-Z]*))} "Tcl Tutorial" a b c
puts "Full Match: $a"
puts "Sub Match1: $b" puts "Sub Match2: $c"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Full Match: Tcl Tutorial
Sub Match1: Tcl Tutorial
Sub Match2: Tutorial
Contoh lain menggunakan sakelar ditunjukkan di bawah ini -
#!/usr/bin/tclsh
regexp -nocase -line -- {([A-Z]*.([A-Z]*))} "Tcl \nTutorial" a b
puts "Full Match: $a" puts "Sub Match1: $b"
regexp -nocase -start 4 -line -- {([A-Z]*.([A-Z]*))} "Tcl \nTutorial" a b
puts "Full Match: $a" puts "Sub Match1: $b"
Ketika kode di atas dijalankan, itu menghasilkan hasil sebagai berikut -
Full Match: Tcl
Sub Match1: Tcl
Full Match: Tutorial
Sub Match1: Tutorial
Tk mengacu pada Toolkit dan menyediakan widget GUI lintas platform, yang membantu Anda dalam membangun Antarmuka Pengguna Grafis. Ini dikembangkan sebagai ekstensi untuk bahasa scripting Tcl oleh John Ousterhout. Tk tetap dalam pengembangan secara independen dari Tcl dengan versi yang berbeda satu sama lain, sebelumnya dibuat sinkron dengan Tcl di v8.0.
Fitur Tk
Ini adalah lintas platform dengan dukungan untuk sistem operasi Linux, Mac OS, Unix, dan Microsoft Windows.
- Ini adalah open source.
- Ini memberikan tingkat perpanjangan yang tinggi.
- Itu dapat disesuaikan.
- Ini dapat dikonfigurasi.
- Ini menyediakan sejumlah besar widget.
- Ini dapat digunakan dengan bahasa dinamis lain dan bukan hanya Tcl.
- GUI terlihat identik di semua platform.
Aplikasi yang Dibangun di Tk
Aplikasi besar yang berhasil telah dibangun di Tcl / Tk.
- Dashboard Soft User Interface
- Membentuk GUI untuk Relational DB
- GUI Ad Hoc untuk Relational DB
- Perancangan Sistem Perangkat Lunak / Perangkat Keras
- Xtask - Manajemen Tugas
- Musikologi dengan Tcl dan Tk
- Aplikasi kalender
- Tk mail
- Tk Debugger
Umumnya, semua Mac Mac dan Linux dilengkapi dengan Tk yang sudah diinstal sebelumnya. Jika tidak tersedia atau Anda memerlukan versi terbaru, Anda mungkin perlu menginstalnya. Windows tidak dilengkapi dengan Tcl / Tk dan Anda mungkin perlu menggunakan biner spesifiknya untuk menginstalnya.
Penerjemah Tk
Ini hanyalah program kecil yang memungkinkan Anda mengetik perintah Tk dan menjalankannya baris demi baris. Ini menghentikan eksekusi file tcl dalam kasus, itu menemukan kesalahan tidak seperti kompiler yang dijalankan sepenuhnya.
Mari kita memiliki file helloWorld.tcl sebagai berikut. Kami akan menggunakan ini sebagai program pertama, kami berjalan di platform yang Anda pilih.
#!/usr/bin/wish
grid [ttk::button .mybutton -text "Hello World"]
Bagian berikut hanya menjelaskan cara menginstal Tcl / Tk di setiap platform yang tersedia.
Instalasi di Windows
Unduh versi terbaru untuk penginstal windows dari daftar binari Tcl / Tk Aktif yang tersedia. Edisi komunitas Tcl / Tk aktif gratis untuk penggunaan pribadi.
Jalankan file yang dapat diunduh untuk menginstal Tcl dan Tk, yang dapat dilakukan dengan mengikuti petunjuk di layar.
Sekarang, kita dapat membangun dan menjalankan file Tcl say helloWorld.tcl dengan beralih ke folder yang berisi file tersebut menggunakan cd dan kemudian menggunakan langkah berikut -
C:\Tcl> wish helloWorld.tcl
Tekan enter dan kita akan melihat output seperti yang ditunjukkan di bawah ini -
Instalasi di Linux
Sebagian besar sistem operasi Linux hadir dengan Tk inbuilt dan Anda dapat segera memulai di sistem tersebut. Jika tidak tersedia, Anda dapat menggunakan perintah berikut untuk mengunduh dan menginstal Tcl-Tk.
$ yum install tcl tk
Sekarang, kita dapat membangun dan menjalankan file Tcl say helloWorld.tcl dengan beralih ke folder yang berisi file tersebut menggunakan cd command dan kemudian menggunakan langkah berikut -
$ wish helloWorld.tcl
Tekan enter dan kami akan melihat output yang mirip dengan berikut -
Instalasi pada Sistem Berbasis Debian
Jika, ini tidak tersedia bawaan di OS Anda, Anda dapat menggunakan perintah berikut untuk mengunduh dan menginstal Tcl-Tk -
$ sudo apt-get install tcl tk
Sekarang, kita dapat membangun dan menjalankan file Tcl say helloWorld.tcl dengan beralih ke folder yang berisi file tersebut menggunakan cd command dan kemudian menggunakan langkah-langkah berikut -
$ wish helloWorld.tcl
Tekan enter dan kami akan melihat output yang mirip dengan berikut -
Instalasi di Mac OS X
Unduh versi terbaru untuk paket Mac OS X dari daftar biner Tcl / Tk Aktif yang tersedia. Edisi komunitas Tcl aktif gratis untuk penggunaan pribadi.
Jalankan file yang dapat diunduh untuk menginstal Tcl Aktif, yang dapat dilakukan dengan mengikuti petunjuk di layar.
Sekarang, kita dapat membangun dan menjalankan file Tcl say helloWorld.tcl dengan beralih ke folder yang berisi file tersebut menggunakan cd command dan kemudian menggunakan langkah berikut -
$ wish helloWorld.tcl
Tekan enter dan kita akan melihat output seperti yang ditunjukkan di bawah ini -
Instalasi dari File Sumber
Anda dapat menggunakan opsi untuk menginstal dari file sumber ketika paket biner tidak tersedia. Biasanya lebih disukai menggunakan binari Tk untuk Windows dan Mac OS X, jadi hanya kompilasi sumber pada sistem berbasis unix yang ditampilkan di bawah -
Unduh file sumber.
Sekarang, gunakan perintah berikut untuk mengekstrak, mengkompilasi, dan membangun setelah beralih ke folder yang diunduh.
$ tar zxf tk8.6.1-src.tar.gz
$ cd tcl8.6.1 $ cd unix
$ ./configure —with-tcl=../../tcl8.6.1/unix —prefix=/opt —enable-gcc $ make
$ sudo make install
Note - Pastikan, Anda mengubah nama file ke versi yang Anda unduh pada perintah 1 dan 2 di atas.
Di Tk, kami mengklasifikasikan beberapa variabel sebagai variabel khusus dan mereka memiliki penggunaan / fungsionalitas yang telah ditentukan. Daftar variabel khusus tercantum di bawah ini.
Sr.No. | Variabel & Deskripsi Khusus |
---|---|
1 | tk_library Digunakan untuk mengatur lokasi pustaka Tk standar. |
2 | tk_patchLevel Mengacu pada level patch interpreter Tk saat ini. |
3 | tk_strictMotif Ketika bukan nol, Tk mencoba untuk mengikuti tampilan-dan-nuansa Motif sedekat mungkin. |
4 | tk_version Menampilkan versi Tk. |
Variabel khusus di atas memiliki arti khusus untuk interpreter Tk.
Contoh penggunaan variabel khusus Tk
Mari kita lihat contoh variabel khusus.
VERSI TK
#!/usr/bin/wish
puts $tk_version
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini.
8.5
TK LIBRARY PATH
#!/usr/bin/wish
puts $tk_library
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini.
/Library/Frameworks/Tk.framework/Versions/8.6/Resources/Scripts
TINGKAT PATCH TK
#!/usr/bin/wish
puts $tk_patchLevel
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini.
8.6.1
TK STRICTMOTIF
#!/usr/bin/wish
puts $tk_strictMotif
Saat Anda menjalankan program, Anda akan mendapatkan hasil yang serupa seperti yang ditunjukkan di bawah ini.
0
Komponen dasar dari aplikasi berbasis Tk disebut widget. Sebuah komponen kadang-kadang juga disebut jendela, karena, di Tk, "jendela" dan "widget" sering digunakan secara bergantian. Tk adalah sebuah paket yang menyediakan sekumpulan komponen grafis yang kaya untuk membuat aplikasi grafis dengan Tcl.
Tk menyediakan berbagai widget mulai dari widget GUI dasar seperti tombol dan menu hingga widget tampilan data. Widget sangat dapat dikonfigurasi karena memiliki konfigurasi default sehingga mudah digunakan.
Aplikasi Tk mengikuti hierarki widget di mana sejumlah widget dapat ditempatkan dalam widget lain, dan widget tersebut dalam widget lain. Widget utama dalam program Tk disebut sebagai widget root dan dapat dibuat dengan membuat instance baru dari kelas TkRoot.
Membuat Widget
Sintaks untuk membuat widget diberikan di bawah ini.
type variableName arguments options
Jenis di sini mengacu pada jenis widget seperti tombol, label, dan sebagainya. Argumen dapat bersifat opsional dan diperlukan berdasarkan sintaks individual setiap widget. Pilihannya berkisar dari ukuran hingga pemformatan setiap komponen.
Konvensi Penamaan Widget
Widget menggunakan struktur yang mirip dengan paket penamaan. Di Tk, jendela root dinamai dengan titik (.) Dan elemen di jendela, misalnya tombol bernama .myButton1. Nama variabel harus dimulai dengan huruf kecil, angka, atau tanda baca (kecuali titik). Setelah karakter pertama, karakter lain dapat berupa huruf besar atau kecil, angka, atau tanda baca (kecuali titik). Dianjurkan untuk menggunakan huruf kecil untuk memulai label.
Konvensi Penamaan Warna
Warna-warna tersebut dapat dinyatakan dengan menggunakan nama seperti merah, hijau, dan sebagainya. Itu juga dapat menggunakan representasi heksadesimal dengan #. Jumlah digit heksadesimal bisa 3, 6, 9, atau 12.
Konvensi Dimensi
Unit default adalah piksel dan digunakan ketika kita tidak menentukan dimensi. Dimensi lainnya adalah i untuk inci, m untuk milimeter, c untuk sentimeter dan p untuk titik.
Opsi Umum
Ada begitu banyak opsi umum yang tersedia untuk semua widget dan tercantum di bawah ini dalam tabel berikut -
Sr.No. | Sintaks & Deskripsi |
---|---|
1 | -background color Digunakan untuk mengatur warna latar belakang untuk widget. |
2 | -borderwidth width Digunakan untuk menggambar dengan batas dalam efek 3D. |
3 | -font fontDescriptor Digunakan untuk mengatur font untuk widget. |
4 | -foreground color Digunakan untuk menyetel warna latar depan untuk widget. |
5 | -height number Digunakan untuk mengatur ketinggian widget. |
6 | -highlightbackground color Digunakan untuk menyetel persegi panjang warna untuk menggambar di sekitar widget saat widget tidak memiliki fokus masukan. |
7 | -highlightcolor color Digunakan untuk menyetel persegi panjang warna untuk menggambar di sekitar widget saat widget memiliki fokus input. |
8 | -padx number Setel padx untuk widget. |
9 | -pady number Setel pady untuk widget. |
10 | -relief condition Setel relief 3D untuk widget ini. Kondisi tersebut dapat timbul, cekung, datar, bergerigi, padat, atau berlekuk. |
11 | -text text Menyetel teks untuk widget. |
12 | -textvariable varName Variabel yang terkait dengan widget. Saat teks widget berubah, variabel disetel dengan teks widget. |
13 | -width number Menyetel lebar widget. |
Contoh sederhana untuk opsi ditampilkan di bawah ini.
#!/usr/bin/wish
grid [label .myLabel -background red -text "Hello World" -relief ridge -borderwidth 3]
-padx 100 -pady 100
Saat kita menjalankan program di atas, kita akan mendapatkan output sebagai berikut.
Daftar widget yang tersedia dikategorikan di bawah -
Widget dasar
Sr.No. | Widget & Deskripsi |
---|---|
1 | Label Widget untuk menampilkan satu baris teks. |
2 | Button Widget yang dapat diklik dan memicu tindakan. |
3 | Entry Widget digunakan untuk menerima satu baris teks sebagai input. |
4 | Message Widget untuk menampilkan banyak baris teks. |
5 | Text Widget untuk menampilkan dan secara opsional mengedit beberapa baris teks. |
6 | Toplevel Jendela dengan semua batas dan dekorasi yang disediakan oleh pengelola Jendela. |
Widget Tata Letak
Sr.No. | Widget & Deskripsi |
---|---|
1 | Frame Widget wadah untuk menampung widget lain. |
2 | Place Widget untuk menyimpan widget lain di tempat tertentu dengan koordinat asalnya dan ukuran yang tepat. |
3 | Pack Widget sederhana untuk mengatur widget dalam blok sebelum menempatkannya di widget induk. |
4 | Grid Widget untuk membuat sarang widget dikemas dalam berbagai arah. |
Widget Seleksi
Sr.No. | Widget & Deskripsi |
---|---|
1 | Radiobutton Widget yang memiliki sekumpulan tombol dan label on / off, salah satunya dapat dipilih. |
2 | Checkbutton Widget yang memiliki sekumpulan tombol dan label nyala / mati, banyak di antaranya dapat dipilih .. |
3 | Menu Widget yang berfungsi sebagai pemegang item menu. |
4 | Listbox Widget yang menampilkan daftar sel, satu atau lebih di antaranya dapat dipilih. |
Widget Mega
Sr.No. | Widget & Deskripsi |
---|---|
1 | Dialog Widget untuk menampilkan kotak dialog. |
2 | Spinbox Widget yang memungkinkan pengguna memilih angka. |
3 | Combobox Widget yang menggabungkan entri dengan daftar pilihan yang tersedia untuk digunakan. |
4 | Notebook Widget bertab yang membantu untuk beralih di antara salah satu dari beberapa halaman, menggunakan tab indeks. |
5 | Progressbar Widget untuk memberikan umpan balik visual untuk kemajuan operasi yang lama seperti unggahan file. |
6 | Treeview Widget untuk menampilkan dan memungkinkan penjelajahan melalui hierarki item lebih dalam bentuk pohon. |
7 | Scrollbar Gulir widget tanpa widget teks atau kanvas. |
8 | Scale Widget skala untuk memilih nilai numerik melalui slider. |
Widget Lainnya
Sr.No. | Widget & Deskripsi |
---|---|
1 | Canvas Widget menggambar untuk menampilkan grafik dan gambar .. |
Kami akan membahas masing-masing widget ini di bab-bab selanjutnya.
Widget dasar adalah widget umum yang tersedia di hampir semua aplikasi Tk. Daftar widget dasar yang tersedia diberikan di bawah ini -
Sr.No. | Widget & Deskripsi |
---|---|
1 | Label Widget untuk menampilkan satu baris teks. |
2 | Tombol Widget yang dapat diklik dan memicu tindakan. |
3 | Masuk Widget digunakan untuk menerima satu baris teks sebagai input. |
4 | Pesan Widget untuk menampilkan banyak baris teks. |
5 | Teks Widget untuk menampilkan dan secara opsional mengedit beberapa baris teks. |
6 | Level tertinggi Widget digunakan untuk membuat bingkai yang merupakan jendela tingkat atas baru. |
Contoh Tk sederhana ditunjukkan di bawah ini menggunakan widget dasar -
#!/usr/bin/wish
grid [label .myLabel -text "Label Widget" -textvariable labelText]
grid [text .myText -width 20 -height 5]
.myText insert 1.0 "Text\nWidget\n"
grid [entry .myEntry -text "Entry Widget"]
grid [message .myMessage -background red -foreground white -text "Message\nWidget"]
grid [button .myButton1 -text "Button" -command "set labelText clicked"]
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Widget tata letak digunakan untuk menangani tata letak untuk aplikasi Tk. Widget bingkai digunakan untuk mengelompokkan widget lain dan tempat, paket, dan kisi adalah pengelola tata letak untuk memberi Anda kendali penuh atas penambahan Anda ke jendela. Daftar widget tata letak yang tersedia seperti yang ditunjukkan di bawah ini -
Sr.No. | Widget & Deskripsi |
---|---|
1 | Bingkai Widget wadah untuk menampung widget lain. |
2 | Tempat Widget untuk menyimpan widget lain di tempat tertentu dengan koordinat asalnya dan ukuran yang tepat. |
3 | Pak Widget sederhana untuk mengatur widget dalam blok sebelum menempatkannya di widget induk. |
4 | Kotak Widget untuk membuat sarang widget dikemas dalam berbagai arah. |
Contoh Tk sederhana ditampilkan di bawah ini untuk widget tata letak -
#!/usr/bin/wish
frame .myFrame1 -background red -relief ridge -borderwidth 8 -padx 10 -pady 10
-height 100 -width 100
frame .myFrame2 -background blue -relief ridge -borderwidth 8 -padx 10 -pady 10
-height 100 -width 50
pack .myFrame1
pack .myFrame2
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Widget pemilihan digunakan untuk memilih opsi yang berbeda dalam aplikasi Tk. Daftar widget pilihan yang tersedia seperti yang ditunjukkan di bawah ini.
Sr.No. | Widget & Deskripsi |
---|---|
1 | Tombol radio Widget yang memiliki sekumpulan tombol dan label on / off, salah satunya dapat dipilih. |
2 | Tombol centang Widget yang memiliki sekumpulan tombol dan label on / off, banyak di antaranya dapat dipilih. |
3 | Tidak bisa Widget yang berfungsi sebagai pemegang item menu. |
4 | Kotak daftar Widget yang menampilkan daftar sel, satu atau lebih di antaranya dapat dipilih. |
Contoh Tk sederhana ditunjukkan di bawah ini menggunakan widget pilihan -
#!/usr/bin/wish
grid [frame .gender ]
grid [label .label1 -text "Male" -textvariable myLabel1 ]
grid [radiobutton .gender.maleBtn -text "Male" -variable gender -value "Male"
-command "set myLabel1 Male"] -row 1 -column 2
grid [radiobutton .gender.femaleBtn -text "Female" -variable gender -value "Female"
-command "set myLabel1 Female"] -row 1 -column 3
.gender.maleBtn select
grid [label .myLabel2 -text "Range 1 not selected" -textvariable myLabelValue2 ]
grid [checkbutton .chk1 -text "Range 1" -variable occupied1 -command {if {$occupied1 } {
set myLabelValue2 {Range 1 selected}
} else {
set myLabelValue2 {Range 1 not selected}
} }]
proc setLabel {text} {
.label configure -text $text
}
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Kanvas digunakan untuk menyediakan area menggambar. Sintaks untuk widget kanvas ditunjukkan di bawah ini -
canvas canvasName options
Pilihan
Opsi yang tersedia untuk widget kanvas tercantum di bawah pada tabel berikut -
Sr.No. | Sintaks & Deskripsi |
---|---|
1 | -background color Digunakan untuk mengatur warna latar belakang untuk widget. |
2 | -closeenough distance Menyetel kedekatan kursor mouse ke item yang dapat ditampilkan. Standarnya adalah 1.0 piksel. Nilai ini mungkin pecahan dan harus positif. |
3 | -scrollregion boundingBox Kotak pembatas untuk total area kanvas ini. |
4 | -height number Digunakan untuk mengatur ketinggian widget. |
5 | -width number Menyetel lebar widget. |
6 | -xscrollincrement size Jumlah untuk menggulir secara horizontal saat pengguliran diminta. |
7 | -yscrollincrement size Jumlah untuk menggulir secara vertikal saat pengguliran diminta. |
Contoh sederhana untuk widget kanvas ditunjukkan di bawah ini -
#!/usr/bin/wish
canvas .myCanvas -background red -width 100 -height 100
pack .myCanvas
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Widget untuk Menggambar di Kanvas
Daftar widget yang tersedia untuk menggambar di kanvas tercantum di bawah -
Sr.No. | Widget & Deskripsi |
---|---|
1 | Garis Menarik garis. |
2 | Busur Menggambar busur. |
3 | Empat persegi panjang Menggambar persegi panjang. |
4 | Lonjong Menggambar oval. |
5 | Poligon Menggambar poligon. |
6 | Teks Menggambar teks. |
7 | Bitmap Menggambar bitmap. |
8 | Gambar Menggambar sebuah gambar. |
Contoh menggunakan widget kanvas yang berbeda ditunjukkan di bawah ini -
#!/usr/bin/wish
canvas .myCanvas -background red -width 200 -height 200
pack .myCanvas
.myCanvas create arc 10 10 50 50 -fill yellow
.myCanvas create line 10 30 50 50 100 10 -arrow both -fill yellow -smooth true
-splinesteps 2
.myCanvas create oval 50 50 100 80 -fill yellow
.myCanvas create polygon 50 150 100 80 120 120 100 190 -fill yellow -outline green
.myCanvas create rectangle 150 150 170 170 -fill yellow
.myCanvas create text 170 20 -fill yellow -text "Hello" -font {Helvetica -18 bold}
.myCanvas create bitmap 180 50 -bitmap info
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Widget mega mencakup banyak widget kompleks yang sering dibutuhkan dalam beberapa aplikasi Tk skala besar. Daftar mega widget yang tersedia adalah seperti di bawah ini -
Sr.No. | Widget & Deskripsi |
---|---|
1 | Dialog Widget untuk menampilkan kotak dialog. |
2 | Spinbox Widget yang memungkinkan pengguna memilih angka. |
3 | Kotak kombo Widget yang menggabungkan entri dengan daftar pilihan yang tersedia untuk digunakan. |
4 | Buku catatan Widget bertab yang membantu untuk beralih di antara salah satu dari beberapa halaman, menggunakan tab indeks. |
5 | Progressbar Widget untuk memberikan umpan balik visual untuk kemajuan operasi yang lama seperti unggahan file. |
6 | Treeview Widget untuk menampilkan dan memungkinkan penjelajahan melalui hierarki item lebih dalam bentuk pohon. |
7 | Scroll bar Gulir widget tanpa widget teks atau kanvas. |
8 | Skala Widget skala untuk memilih nilai numerik melalui slider. |
Contoh Tk sederhana ditunjukkan di bawah ini menggunakan beberapa widget mega.
#!/usr/bin/wish
ttk::treeview .tree -columns "Creator Year" -displaycolumns "Year Creator"
.tree heading Creator -text "Creator" -anchor center
.tree heading Year -text "Year" -anchor center
pack .tree
.tree insert {} end -id Languages -text "Languages"
.tree insert Languages end -text C -values [list "Dennis Ritchie" "1990"]
proc scaleMe {mywidget scaleValue} {
$mywidget configure -length $scaleValue
}
pack [scale .s2 -from 100.0 -to 200.0 -length 100 -background yellow -borderwidth 5
-font{Helvetica -18 bold} -foreground red -width 40 -relief ridge -orien horizontal
-variable a -command "scaleMe .s2" ]
pack [ttk::progressbar .p1 -orient horizontal -length 200 -mode indeterminate -value 90]
pack [ttk::progressbar .p2 -orient horizontal -length 200 -mode determinate -variable a
-maximum 75 -value 20]
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Ada sejumlah widget yang mendukung menampilkan teks. Sebagian besar menyediakan opsi atribut font. Sintaks untuk membuat font ditunjukkan di bawah ini -
font create fontName options
Pilihan
Opsi yang tersedia untuk pembuatan font tercantum di bawah ini dalam tabel berikut -
Sr.No. | Sintaks & Deskripsi |
---|---|
1 | -family familyName Nama keluarga fonta. |
2 | -size number Ukuran font. |
3 | -weight level Berat font. |
Contoh sederhana untuk pembuatan font ditunjukkan di bawah ini -
#!/usr/bin/wish
font create myFont -family Helvetica -size 18 -weight bold
pack [label .myLabel -font myFont -text "Hello World"]
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Untuk mendapatkan semua font yang tersedia, kita dapat menggunakan perintah berikut -
#!/usr/bin/wish
puts [font families]
Ketika kami menjalankan perintah di atas, kami akan mendapatkan output berikut -
{Abadi MT Condensed Extra Bold} {Abadi MT Condensed Light} {Al Bayan} {Al Nile}
{Al Tarikh} {American Typewriter} {Andale Mono} Arial {Arial Black}
{Arial Hebrew} {Arial Narrow} {Arial Rounded MT Bold} {Arial Unicode MS}
Athelas Avenir {Avenir Next} {Avenir Next Condensed} Ayuthaya Baghdad {Bangla MN}
{Bangla Sangam MN} {Baoli SC} Baskerville {Baskerville Old Face} Batang {Bauhaus 93}
Beirut {Bell MT} {Bernard MT Condensed} BiauKai {Big Caslon} {Book Antiqua}
{Bookman Old Style} {Bookshelf Symbol 7} Braggadocio {Britannic Bold} {Brush Script MT}
Calibri {Calisto MT} Cambria {Cambria Math} Candara Century {Century Gothic}
{Century Schoolbook} Chalkboard {Chalkboard SE} Chalkduster {Charcoal CY} Charter
Cochin {Colonna MT} {Comic Sans MS} Consolas Constantia {Cooper Black} Copperplate
{Copperplate Gothic Bold} {Copperplate Gothic Light} Corbel {Corsiva Hebrew} Courier
{Courier New} {Curlz MT} Damascus {DecoType Naskh} Desdemona {Devanagari MT}
{Devanagari Sangam MN} Didot {DIN Alternate} {DIN Condensed} {Diwan Kufi} {Diwan Thuluth}
{Edwardian Script ITC} {Engravers MT} {Euphemia UCAS} Eurostile Farah Farisi
{Footlight MT Light} {Franklin Gothic Book} {Franklin Gothic Medium}
Futura Gabriola Garamond {GB18030 Bitmap} {Geeza Pro} Geneva {Geneva CY}
Georgia {Gill Sans} {Gill Sans MT} {Gloucester MT Extra Condensed}
{Goudy Old Style} {Gujarati MT} {Gujarati Sangam MN} Gulim GungSeo {Gurmukhi MN}
{Gurmukhi MT} {Gurmukhi Sangam MN} Haettenschweiler {Hannotate SC} {Hannotate TC}
{HanziPen SC} {HanziPen TC} Harrington HeadLineA Hei {Heiti SC} {Heiti TC}
Helvetica {Helvetica CY} {Helvetica Neue} Herculanum {Hiragino Kaku Gothic Pro}
{Hiragino Kaku Gothic ProN} {Hiragino Kaku Gothic Std} {Hiragino Kaku Gothic StdN}
{Hiragino Maru Gothic Pro} {Hiragino Maru Gothic ProN}
{Hiragino Mincho Pro} {Hiragino Mincho ProN} {Hiragino Sans GB}
{Hoefler Text} Impact {Imprint MT Shadow} InaiMathi {Iowan Old Style} Kai Kailasa
{Kaiti SC} {Kaiti TC} {Kannada MN} {Kannada Sangam MN} Kefa {Khmer MN} {Khmer Sangam MN}
{Kino MT} Kokonor Krungthep KufiStandardGK {Lantinghei SC} {Lantinghei TC} {Lao MN}
{Lao Sangam MN} {Libian SC} {LiHei Pro} {LiSong Pro} {Lucida Blackletter} {Lucida Bright}
{Lucida Calligraphy} {Lucida Console} {Lucida Fax} {Lucida Grande} {Lucida Handwriting}
{Lucida Sans} {Lucida Sans Typewriter} {Lucida Sans Unicode} {Malayalam MN}
{Malayalam Sangam MN} Marion {Marker Felt} Marlett {Matura MT Script Capitals}
Meiryo Menlo {Microsoft Sans Serif} Mishafi Mistral {Modern No. 20} Monaco {MS Gothic}
{MS Mincho} {MS PGothic} {MS PMincho} {MS Reference Sans Serif} {MS Reference Specialty}
Mshtakan {MT Extra} Muna {Myanmar MN} {Myanmar Sangam MN} Nadeem {Nanum Brush Script}
{Nanum Gothic} {Nanum Myeongjo} {Nanum Pen Script} {New Peninim MT} {News Gothic MT}
Noteworthy Onyx Optima {Oriya MN} {Oriya Sangam MN} Osaka Palatino {Palatino Linotype}
Papyrus PCMyungjo Perpetua {Perpetua Titling MT} PilGi {Plantagenet Cherokee}
Playbill PMingLiU {PT Mono} {PT Sans} {PT Sans Caption} {PT Sans Narrow} {PT Serif}
{PT Serif Caption} Raanana Rockwell {Rockwell Extra Bold} Sana Sathu {Savoye LET}
Seravek Silom SimSun {Sinhala MN} {Sinhala Sangam MN} Skia {Snell Roundhand} {Songti SC}
{Songti TC} Stencil STFangsong STHeiti STIXGeneral STIXIntegralsD STIXIntegralsSm
STIXIntegralsUp STIXIntegralsUpD STIXIntegralsUpSm STIXNonUnicode STIXSizeFiveSym
STIXSizeFourSym STIXSizeOneSym STIXSizeThreeSym STIXSizeTwoSym STIXVariants STKaiti
STSong Superclarendon Symbol Tahoma {Tamil MN} {Tamil Sangam MN} TeamViewer8 {Telugu MN}
{Telugu Sangam MN} Thonburi Times {Times New Roman} {Trebuchet MS} {Tw Cen MT} Verdana
Waseem {Wawati SC} {Wawati TC} Webdings {Weibei SC} {Weibei TC} {Wide Latin} Wingdings
{Wingdings 2} {Wingdings 3} {Xingkai SC} {Yuanti SC} YuGothic YuMincho {Yuppy SC}
{Yuppy TC} {Zapf Dingbats} Zapfino {Apple Braille} {Apple Chancery} {Apple Color Emoji}
{Apple LiGothic} {Apple LiSung} {Apple SD Gothic Neo} {Apple Symbols}
AppleGothic AppleMyungjo {Monotype Corsiva} {Monotype Sorts}
Widget gambar digunakan untuk membuat dan memanipulasi gambar. Sintaks untuk membuat gambar adalah sebagai berikut -
image create type name options
Dalam tipe sintaks di atas adalah foto atau bitmap dan nama adalah pengenal gambar.
Pilihan
Opsi yang tersedia untuk pembuatan gambar tercantum di bawah ini pada tabel berikut -
Sr.No. | Sintaks & Deskripsi |
---|---|
1 | -file fileName Nama dari nama file gambar. |
2 | -height number Digunakan untuk mengatur ketinggian widget. |
3 | -width number Menyetel lebar widget. |
4 | -data string Gambar dalam string berenkode basis 64. |
Contoh sederhana untuk widget gambar ditunjukkan di bawah ini -
#!/usr/bin/wish
image create photo imgobj -file "/Users/rajkumar/Desktop/F Drive/pictur/vb/Forests/
680049.png" -width 400 -height 400
pack [label .myLabel]
.myLabel configure -image imgobj
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Fungsi yang tersedia untuk gambar tercantum di bawah ini pada tabel berikut -
Sr.No. | Sintaks & Deskripsi |
---|---|
1 | image delete imageName Menghapus gambar dari memori dan widget terkait secara visual. |
2 | image height imageName Mengembalikan tinggi untuk gambar. |
3 | image width imageName Mengembalikan lebar gambar. |
4 | image type imageName Mengembalikan tipe gambar. |
5 | image names Mengembalikan daftar gambar yang tinggal di memori. |
Contoh sederhana untuk menggunakan perintah widget gambar di atas ditunjukkan di bawah ini -
#!/usr/bin/wish
image create photo imgobj -file "/Users/rajkumar/images/680049.png"
-width 400 -height 400
pack [label .myLabel]
.myLabel configure -image imgobj
puts [image height imgobj]
puts [image width imgobj]
puts [image type imgobj]
puts [image names]
image delete imgobj
Gambar akan dihapus secara visual dan dari memori setelah perintah "image delete imgobj" dijalankan. Di konsol, hasilnya akan seperti berikut -
400
400
photo
imgobj ::tk::icons::information ::tk::icons::error ::tk::icons::
warning ::tk::icons::question
Acara dalam bentuk yang paling sederhana ditangani dengan bantuan perintah. Contoh sederhana untuk penanganan event adalah penanganan event dengan tombol dan ditunjukkan di bawah ini -
#!/usr/bin/wish
proc myEvent { } {
puts "Event triggered"
}
pack [button .myButton1 -text "Button 1" -command myEvent]
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Sebuah program sederhana untuk menampilkan acara animasi teks tunda ditunjukkan di bawah ini -
#!/usr/bin/wish
proc delay {} {
for {set j 0} {$j < 100000} {incr j} {}
}
label .myLabel -text "Hello................" -width 25
pack .myLabel
set str "Hello................"
for {set i [string length $str]} {$i > -2} {set i [expr $i-1]} { .myLabel configure -text [string range $str 0 $i]
update
delay
}
Saat kami menjalankan program, kami akan mendapatkan output berikut dengan cara animasi -
Acara setelah penundaan
Sintaks untuk acara setelah penundaan ditampilkan di bawah ini -
after milliseconds number command
Sebuah program sederhana untuk ditampilkan setelah acara penundaan ditampilkan di bawah ini -
#!/usr/bin/wish
proc addText {} {
label .myLabel -text "Hello................" -width 25
pack .myLabel
}
after 1000 addText
Saat kami menjalankan program, kami akan mendapatkan output berikut setelah satu detik -
Anda dapat membatalkan acara menggunakan perintah setelah membatalkan seperti yang ditunjukkan di bawah ini -
#!/usr/bin/wish
proc addText {} {
label .myLabel -text "Hello................" -width 25
pack .myLabel
}
after 1000 addText
after cancel addText
Pengikatan Acara
Sintaks untuk event binding seperti yang ditunjukkan di bawah ini -
bind arguments
Contoh Acara Keyboard
#!/usr/bin/wish
bind . {puts "Key Pressed: %K "}
Ketika kami menjalankan program dan menekan huruf X, kami akan mendapatkan output berikut -
Key Pressed: X
Contoh Peristiwa Mouse
#!/usr/bin/wish
bind . {puts "Button %b Pressed : %x %y "}
Ketika kami menjalankan program dan menekan tombol kiri mouse, kami akan mendapatkan output yang mirip dengan berikut -
Button 1 Pressed : 89 90
Menghubungkan Acara dengan Contoh Tombol
#!/usr/bin/wish
proc myEvent { } {
puts "Event triggered"
}
pack [button .myButton1 -text "Button 1" -command myEvent]
bind . ".myButton1 invoke"
Saat kita menjalankan program dan menekan enter, kita akan mendapatkan output berikut -
Event triggered
Manajer jendela digunakan untuk menangani jendela tingkat atas. Ini membantu dalam mengontrol ukuran, posisi, dan atribut jendela lainnya. Di Tk,. digunakan untuk merujuk ke jendela utama. Sintaks untuk perintah jendela ditampilkan di bawah ini -
wm option window arguments
Daftar opsi yang tersedia untuk perintah Tk wm ditunjukkan pada tabel berikut -
Sr.No. | Sintaks & Deskripsi |
---|---|
1 | aspect windowName a b c d Mencoba untuk menjaga rasio lebar / tinggi antara a / b dan c / d. |
2 | geometry windowName geometryParams Gunakan untuk mengatur geometri untuk jendela. |
3 | grid windowName w h dx dy Setel ukuran petak. |
4 | group windowName leaderName leaderName memberikan pemimpin grup jendela terkait. |
5 | deiconify windowName Membawa layar ke normal jika diminimalkan. |
6 | iconify windowName Meminimalkan jendela. |
7 | state windowName Mengembalikan status jendela saat ini. |
8 | withdraw windowName Buka peta jendela dan hapus detailnya di memori. |
9 | iconbitmap windowName image Setel atau kembalikan ikon bitmap. |
10 | iconPhoto windowName image Mengatur atau mengembalikan foto ikon. |
11 | command windowName commandString Merekam perintah startup di properti WM_COMMAND. |
12 | protocol windowName arguments Daftarkan perintah untuk menangani nama permintaan protokol, yang bisa berupa WM_DELETE_WINDOW, WM_SAVE_YOURSELF, WM_TAKE_FOCUS. Misalnya: protokol wm. WM_DELETE_WINDOW Keluar. |
13 | minsize windowName size Menentukan ukuran jendela minimum. |
14 | maxsize windowName size Menentukan ukuran jendela maksimum. |
15 | title windowName titleText Menentukan judul untuk jendela. |
16 | attributes subOptions Ada banyak atribut yang tersedia seperti alfa, layar penuh, dan sebagainya. |
Beberapa perintah di atas digunakan dalam contoh berikut -
#!/usr/bin/wish
wm maxsize . 800 800
wm minsize . 300 300
wm title . "Hello"
wm attributes . -alpha ".90"
wm geometry . 300x200+100+100
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Seperti yang Anda lihat, alfa adalah salah satu atribut yang tersedia. Daftar subperintah yang umum digunakan tercantum di bawah ini -
Sr.No. | Sintaks & Deskripsi |
---|---|
1 | -alpha number Set alfa untuk jendela. |
2 | -fullscreen number Angka bisa 0 untuk layar normal atau 1 untuk layar penuh. |
3 | -topmost number Menyetel atau mengembalikan apakah jendela paling atas.Nilai bisa 0 atau 1. |
Membuat Jendela
Kita dapat menggunakan perintah tingkat atas untuk membuat jendela dan contohnya ditunjukkan di bawah ini -
#!/usr/bin/wish
toplevel .t
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Menghancurkan Jendela
Kita dapat menggunakan perintah penghancuran untuk menghancurkan jendela dan contohnya ditunjukkan di bawah ini -
#!/usr/bin/wish
destroy .t
Perintah di atas akan menghancurkan jendela bernama .t.
Manajer geometri digunakan untuk mengatur geometri jendela dan bingkai lainnya. Kita bisa menggunakannya untuk menangani posisi dan ukuran jendela dan bingkai. Para tata letak widget yang digunakan untuk tujuan ini.
Penentuan posisi dan ukuran
Sintaks untuk jendela pemosisian dan ukuran ditunjukkan di bawah ini -
wm geometry . wxh+/-x+/-y
Di sini, w mengacu pada lebar dan h untuk tinggi. Diikuti dengan tanda '+' atau '-' dengan nomor berikutnya yang mengacu pada posisi x di layar. Demikian pula tanda '+' atau '-' berikut dengan angka mengacu pada posisi y di layar
Contoh sederhana ditunjukkan di bawah ini untuk Pernyataan di atas -.
#!/usr/bin/wish
wm geometry . 300x200+100+100
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -
Geometri Kisi
Sintaks untuk geometri grid ditunjukkan di bawah ini -
grid gridName -column number -row number -columnspan number -rowspan number
Kolom, baris, rentang kolom, atau rentang baris membantu dalam menyediakan geometri kisi.
Contoh sederhana ditunjukkan di bawah ini untuk pernyataan di atas -
#!/usr/bin/wish
frame .myFrame1 -background red -height 100 -width 100
frame .myFrame2 -background blue -height 100 -width 50
grid .myFrame1 -columnspan 10 -rowspan 10 -sticky w
grid .myFrame2 -column 10 -row 2
Saat kita menjalankan program di atas, kita akan mendapatkan output berikut -