Gtkdialog - Membuat Antarmuka Grafis (GTK+) dan Kotak Dialog Menggunakan Skrip Shell di Linux


Gtkdialog (atau gtkdialog) adalah utilitas open source yang bagus untuk membuat dan membangun Antarmuka GTK+ dan Kotak Dialog dengan bantuan skrip shell Linux dan menggunakan pustaka GTK, serta menggunakan sintaks mirip xml, yang memudahkan pembuatan antarmuka menggunakan gtkdialog. Ini sangat mirip dengan alat paling terkenal yang disebut Zenity, tetapi ia hadir dengan beberapa fitur berguna yang dapat disesuaikan yang memungkinkan Anda membuat banyak widget dengan mudah seperti vbox, hbox, tombol, bingkai, teks, menu, dan banyak lagi.

Baca Juga : Membuat Kotak Dialog Grafis GTK+ menggunakan Zenity

Instalasi Gtkdialog di Linux

Anda dapat mengunduh gtkdialog-0.8.3 (yang merupakan versi terbaru) atau Anda juga dapat menggunakan perintah wget, membongkar file yang diunduh dan menjalankan perintah berikut untuk mengkompilasi dari sumber.

sudo apt-get install build-essential		[on Debian based systems]
yum install gcc make gcc-c++			[on RedHat based systems]
wget https://gtkdialog.googlecode.com/files/gtkdialog-0.8.3.tar.gz
tar -xvf gtkdialog-0.8.3.tar.gz
cd gtkdialog-0.8.3/
./configure
make
sudo make install

Sekarang mari kita mulai membuat beberapa kotak, buat skrip “program saya” baru di folder utama Anda.

Program Pertama Saya
cd
touch myprogram

Sekarang buka file “program saya ” menggunakan editor teks apa pun yang Anda inginkan, dan tambahkan kode berikut ke dalamnya.

#!/bin/bash 

GTKDIALOG=gtkdialog 
export MAIN_DIALOG=' 

<window title="My First Program" icon-name="gtk-about" resizable="true" width-request="300" height-request="310"> 

<vbox> 
	<hbox space-fill="true" space-expand="true"> 
		<button>	 
			<label>Welcome to TecMint.com Home!</label> 
			<action>echo "Welcome to TecMint.com Home!"</action> 
		</button> 
	</hbox> 
</vbox> 
</window> 
' 

case $1 in 
	-d | --dump) echo "$MAIN_DIALOG" ;; 
	*) $GTKDIALOG --program=MAIN_DIALOG --center ;; 

esac 
------------

Simpan file, dan atur izin eksekusi dan jalankan seperti yang ditunjukkan.

chmod 755 myprogram
./myprogram

Ini adalah bagaimana program pertama Anda dibuat dan dieksekusi menggunakan gtkdialog.

Sekarang, kami akan menjelaskan kodenya secara singkat.

  1. #!/bin/bash: Baris pertama skrip shell apa pun, digunakan untuk menentukan jalur bash shell.
  2. GTKDIALOG=gtkdialog: Di sini kita mendefinisikan variabel untuk digunakan nanti saat menjalankan skrip shell dengan gtkdialog, baris ini harus ada di semua skrip yang Anda buat menggunakan gtkdialog.
  3. ekspor MAIN_DIALOG=: Variabel lain yang kami tentukan yang akan berisi semua sintaks untuk antarmuka kami, Anda dapat mengganti MAIN_DIALOG dengan nama apa pun yang Anda inginkan, tetapi Anda juga harus menggantinya di 4 baris terakhir skrip.
  4. Judul Jendela: Saya rasa kode ini tidak perlu dijelaskan, kami membuat judul, ikon default untuk jendela, kami memilih apakah ukurannya dapat diubah atau tidak, dan kami menentukan lebar dan tinggi yang kita inginkan, tentu saja semua opsi itu bersifat sekunder, Anda bisa menggunakan tag saja jika mau.
  5. : Kita menggunakan tag vbox untuk membuat kotak vertikal, penting untuk membuat tag vbox agar dapat memuat tag lain seperti hbox dan button, dll.
  6. : Di sini kita membuat kotak horizontal menggunakan tag , “space-fill” dan “space-expand” adalah opsi untuk memperluas hbox melalui jendela.
  7. <button>: Membuat tombol baru.
  8. : Ini adalah teks default untuk tombol, kita menutup tag label menggunakan , tentunya sangat penting untuk menutup semua tag yang kita gunakan.
  9. : Ini yang terjadi ketika tombol diklik, Anda bisa menjalankan perintah shell jika Anda mau atau mengeksekusi file lain jika Anda mau, masih banyak tindakan dan sinyal lainnya juga, jangan' jangan lupa menutupnya menggunakan .
  10. : Untuk menutup tag tombol.
  11. : Untuk menutup tag hbox.
  12. : Untuk menutup tag jendela.

4 baris terakhir juga harus ada di semua skrip shell yang Anda buat menggunakan gtkdialog, baris tersebut mengeksekusi variabel MAIN_DIALOG menggunakan perintah gtkdialog dengan opsi –center untuk memusatkan jendela, sebenarnya sangat berguna.

Program Kedua Saya

Demikian pula, buat file lain dan beri nama 'program kedua' dan tambahkan seluruh konten berikut ke dalamnya.

#!/bin/bash 

GTKDIALOG=gtkdialog 
export MAIN_DIALOG=' 

<window title="My Second Program" icon-name="gtk-about" resizable="true" width-request="250" height-request="150"> 

<vbox> 
	<hbox space-fill="true"> 
		<combobox>	 
			<variable>myitem</variable> 
			<item>First One</item> 
			<item>Second One</item> 
			<item>Third One</item> 
		</combobox> 
	</hbox> 
	<hbox> 
		<button> 
			<label>Click Me</label> 
			<action>echo "You choosed $myitem"</action> 
		</button> 
	</hbox> 
<hseparator width-request="240"></hseparator> 

	<hbox> 
		<button ok></button> 
	</hbox> 
</vbox> 
</window> 
' 

case $1 in 
	-d | --dump) echo "$MAIN_DIALOG" ;; 
	*) $GTKDIALOG --program=MAIN_DIALOG --center ;; 

esac

Simpan file, atur izin eksekusi dan jalankan seperti yang ditunjukkan.

chmod 755 secondprogram
./secondprogram

Sekarang, kami akan menjelaskan kodenya secara singkat.

  1. Kita membuat widget combobox menggunakan , tag adalah nama default dari variabel tempat item yang dipilih akan disimpan, kita menggunakan variabel ini untuk mencetak item yang dipilih nanti menggunakan echo.
  2. adalah pemisah horizontal, Anda bisa menyetel lebar defaultnya menggunakan opsi permintaan lebar.
  3. adalah tombol OK yang akan menutup jendela saat Anda mengkliknya, ini sangat berguna sehingga kita tidak perlu membuat tombol khusus untuk melakukan itu.
Program Ketiga Saya

Buat file lain bernama 'program ketiga' dan tambahkan sejumlah kode ke dalamnya.

#!/bin/bash 

GTKDIALOG=gtkdialog 
export MAIN_DIALOG=' 

<window title="My Second Program" icon-name="gtk-about" resizable="true" width-request="250" height-request="150"> 

<notebook tab-label="First | Second|"> 
<vbox> 
	<hbox space-fill="true"> 
		<combobox>	 
			<variable>myitem</variable> 
			<item>First One</item> 
			<item>Second One</item> 
			<item>Third One</item> 
		</combobox> 
	</hbox> 
	<hbox> 
		<button> 
			<label>Click Me</label> 
			<action>echo "You choosed $myitem"</action> 
		</button> 
	</hbox> 
<hseparator width-request="240"></hseparator> 

	<hbox> 
		<button ok></button> 
	</hbox> 
</vbox> 

<vbox> 

	<hbox space-fill="true"> 
		<text> 
		<label>Spinbutton </label> 
		</text> 
	</hbox> 

	<hbox space-fill="true" space-expand="true"> 
		<spinbutton range-min="0" range-max="100" range-value="4"> 
			<variable>myscale</variable> 
			<action>echo $myscale</action> 
		</spinbutton> 
	</hbox> 

	<hbox> 
		<button ok></button> 
	</hbox> 

</vbox> 
</notebook> 
</window> 
' 

case $1 in 
	-d | --dump) echo "$MAIN_DIALOG" ;; 
	*) $GTKDIALOG --program=MAIN_DIALOG --center ;; 

esac

Simpan file, berikan izin eksekusi dan jalankan seperti yang ditunjukkan.

chmod 755 thirdprogram
./thirdprogram

Di sini, penjelasan kode lebih detail.

  1. Kami membuat dua tab buku catatan menggunakan , opsi tab-label adalah tempat Anda dapat membuat tab, gtkdialog akan membuat tab tergantung pada label yang Anda masukkan, setiap didefinisikan sebagai tab, jadi tab pertama dimulai dengan pertama, tab kedua dimulai dengan kedua.
  2. adalah widget teks, kami menggunakan tag
  3. Tag akan membuat tombol putar baru, opsi range-min adalah nilai minimum, dan range-max adalah nilai maksimum untuk tombol putar, nilai rentang adalah nilai default untuk putaran tombol.
  4. Kami memberikan variabel “myscale” ke .
  5. Kami mencetak nilai yang dipilih menggunakan variabel echo dan $myscale, sinyal default untuk tindakan di sini adalah "nilai diubah" yang membantu kami melakukan hal itu.

Ini hanyalah jendela contoh, Anda dapat membuat antarmuka yang lebih rumit menggunakan gtkdialog jika mau, Anda dapat menelusuri dokumentasi resmi di situs gtkdialog untuk melihat semua tag gtkdialog dari tautan di bawah.

Dokumentasi Gtkdialog

Pernahkah Anda menggunakan gtkdialog untuk membuat GUI untuk skrip shell Anda sebelumnya? Atau apakah Anda pernah menggunakan utilitas semacam itu untuk membuat antarmuka? Apa yang Anda pikirkan?