Bu yazıda Pardus üçün necə tətbiqlər hazırlaya biləcəyimizi izah etməyə çalışacağıq.
Nə tələb olunur?
Pardus-a ərizə yazmağın bir çox yolu var. Siz C, C++, Java, Rust və ya hətta C# istifadə edə bilərsiniz. Biz Python 3 dili ilə GTK3 Kitabxanadan istifadə edəcəyik. Əgər sən istəsən Qt kimi kitabxanalardan da istifadə edə bilərsiniz
GTK Kitabxanadan istifadə edərək, hətta C, Rust, Vala kimi dillərlə eyni işi görən proqram yaza bilərsiniz. Dil seçimi tamamilə sizə bağlıdır.
Tətbiqi yazmaq üçün istədiyiniz kod redaktorundan da istifadə edə bilərsiniz. VSCode, PyCharm, Sublime Text, Atom, Gnome Builder, Vim, Nano. Bu seçim sizdən asılıdır.
Bizə əsasən iki vasitə lazımdır:
1. Python yazmaq üçün mətn redaktoru.
2. GTK interfeysini dizayn etmək tala proqram.
şənlik'Quraşdırmaq üçün i:
sudo apt install glade
Python3-də GTK3 kitabxanası ilə inkişaf etdirmək üçün lazımi kitabxanaları da endirək:
sudo apt python3-gi quraşdırın
Bəli, indi proqramımızı inkişaf etdirməyə başlaya bilərik.
"Salam Dünya"
Lazımi alətlərimizi hazırladıqdan sonra ilk GTK tətbiqimizi yazmağa başlayaq.
Əsas faylımızı işə salmağa hazırlayaq və main.py adlı bir fayl yaradaq
main.py:
İndi bu faylı araşdıraq.
gtk kitabxanası ilə işləmək üçün bizə lazımdır Ən azı 3.0 versiyası ilə gtk kitabxanasını quraşdırın daxil etdik:
import gi gi.require_version('Gtk', '3.0') gi.repository import Gtk, GLib, Gio
GTK dediyimiz əslində Gtk, GLib, Gio kimi alt-kitabxanaların ümumisidir.
- gtk: Tətbiqimizin "widget" kimi hissələrini yaratmaq üçün, yəni bir düymə idi, bir pəncərə idi.
- Glib: Arxa planda prosesi idarə etmək və onun çıxışlarını oxumaq, fayl əməliyyatları, qabaqcıl məlumat strukturları kimi aşağı səviyyəli tapşırıqlar üçün daha çox. (GLib-in bir çox xüsusiyyətləri əslində Python dilinin öz standart kitabxanalarında mövcuddur, məsələn, bir prosesi idarə etmək üçün subprocess.call() əmri.)
- Gio: Yenə GLib kimi əsas səviyyədə işləyən və IO əməliyyatlarını idarə edən bir kitabxana. (DBus, Fayl kimi.)
GTK tətbiqini təyin etmək üçün Gtk.Application Biz sinifdən miras almalıyıq və öz sinfimizi yaratmalıyıq.
Gəlin burada bizim sinif tərifimizə nəzər salaq tətbiq sənin adınla Gtk.Application Biz miras qalan bir sinif təyin etdik
sinif Tətbiqi (Gtk.Application):
Sinifimizin konstruktor metodunda tətbiqimizə bir neçə düzəliş etdik.
- application_id: Müraciətinizin ID-si.
- bayraqlar: Bunlar tətbiqinizi qurarkən istifadə ediləcək bayraqlardır. (Bayraq siyahısı üçün: Gio.ApplicationFlags)
- arqlar və kvarqlar Sinifimizdən obyekt yaratarkən massiv(args) və ya açar-dəyər(kwargs) kimi verilən parametrlərin siyahısını saxlayır. Amma Gtk.Application obyektinə heç bir parametr ötürməyəcəyimiz üçün obyekti yaradarkən args və kwargları boş qoymuşuq. (Arqlar və kvarqlar haqqında məlumat üçün)
def __init__(self, *args, **kwargs): super().__init__(*args, application_id="en.org.pardus.example-application", flags=Gio.ApplicationFlags.FLAGS_NONE, **kwargs)
Aşağıdakı bölmədə biz müəyyən etdik tətbiq Sinif obyekti yaratmaq və tətbiqimizi işə salmaq üçün Gtk.Application-də müəyyən edilmişdir .run() metoddan istifadə etdik.
app = App() app.run(sys.argv)
Glade ilə interfeys dizaynı
Glade proqramını açdıqdan sonra MainWindow.glade adlı bir fayl yaradırıq Proqramın orta sahəsinə sağ vurun "GtkApplicationWindow" və faylımıza əlavə edin. Sonra şəxsiyyət vəsiqəsi "pəncərə" edək.

İndi proqram pəncərəmiz hazırdır. İndi içəriyə bəzi elementlər əlavə edək.

Pəncərəmizin boş hissəsinə iki dəfə klikləyin Gtk.BoxBiz seçirik. Gtk.Box elementləri ardıcıl, şaquli və ya üfüqi şəkildə yerləşdirə biləcəyimiz konteynerdir. GtkApplicationWindow Vidcet kimi yalnız bir element qəbul etdiyi üçün biz ona birdən çox element qoya bilmərik. Buna görə də birdən çox element ehtiva edə bilər. "Konteynerlər"onlara ehtiyacımız var. Konteynerlər həmçinin ekranda elementlərin düzülməsini seçməyə imkan verir. misal üçün GtkBox Bununla birlikdə elementləri yuxarıdan aşağıya və ya soldan sağa qoya bilərsiniz GtkGrid Siz elementlərinizi AxB şəbəkə görünüşündə yerləşdirə bilərsiniz.
İndi 3 elementli GtkBox-un içərisinə birini qoyuruq GtkLabel və bir Gtk düyməsi əlavə edək.


Düyməmizə bir haşiyə verək ki, Etiketdən bir az aralı olsun. Üstəlik Qruplaşma(Hazırlama) hissəsi Doldurmaq(doldurun) əvəzinə mərkəzOnu (Orta) etsək, düyməmiz öz enində qalacaq və üfüqi sahəni örtmək əvəzinə mərkəzləşəcək.

Etiketimizin ölçüsünü də dəyişdirərək boy(Ölçü) xassəsini 18000(18pt) olaraq təyin edək

Nəhayət, düyməmiz kliklədikdə işləyəcək metodu müəyyən etmək üçün düyməni seçin və ona ID verin: “btn_ok"
Daha sonra Siqnalları(Siqnallar) bölməsindən "tıkladı” hadisəsinə metod adı yazaq: “on_btn_ok_clicked"

Proqramda Glade interfeysi göstərilir:
Glade-də hazırladığımız ekranı tətbiqimizə əlavə etmək üçün sinif yaradaq.
QEYD: main.py nümunəmizdə MainWindow.py və MainWindow.glade eyni kataloqda yerləşməlidir.
MainWindow.py:
İndi biz main.py-dən pəncərəmizə zəng edə bilərik:
main.py:
MainWindow import MainWindow#...def do_activate(self): self.window = MainWindow(self)
Proqramı yoxlamaq üçün onu aşağıdakı kimi işlədə bilərsiniz:
python3 main.py
və ya
./ain.py
Bəli, ilk müraciətiniz budur! Təbrik edirik! ????

Bundan sonra proqrama yazacağınız digər kodları MainWindow.py içərisinə yazmağı unutmayın. daha çox nümunə üçün https://kod.pardus.org.tr/pardus Yazdığımız müraciətlərə baxa bilərsiniz.
İndi siz Pardus üçün proqramlar hazırlamağa başlaya və Linux-da tətbiq ekosisteminin inkişafına töhfə verə bilərsiniz. Əgər məqalənin qalan hissəsi bu linkdən çata bilərsiniz.
salamlar.