Merhabalar, ilk olarak bilgisayarımızı güncelleyeceğiz ve gereksiz paketleri kaldıracağız:
sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y
Sonrasında gerekli paketleri yükleyeceğiz:
sudo apt install libgirepository1.0-dev libcairo2-dev -y
Pardus Yazılım Merkezi’nden PyCharm CE Uygulaması’nı indirelim. Yaptığımız örnekte proje adı olarak animasyonlu_filigran yazdık ve aşağıdaki komutları çalıştıracağız:
pip install pycairo pygobject
main.py dosyası içeriği:
#!/usr/bin/python3
import gi
gi.require_version(‘Gtk’, ‘3.0’)
from gi.repository import Gtk as gtk
from gi.repository import GdkPixbuf as gdkpix
from gi.repository import Gdk
import os
import cairo
def on_activate(app):
uygulama_penceresi = gtk.ApplicationWindow(application=app)
uygulama_penceresi.screen = uygulama_penceresi.get_screen()
uygulama_penceresi.visual = uygulama_penceresi.screen.get_rgba_visual()
if uygulama_penceresi.visual is not None and uygulama_penceresi.screen.is_composited():
uygulama_penceresi.set_visual(uygulama_penceresi.visual)
dosya_yolu = os.path.abspath("animasyonlu_filigran.gif")
pixbuf = gdkpix.PixbufAnimation.new_from_file(dosya_yolu)
resim = gtk.Image.new_from_animation(pixbuf)
uygulama_penceresi.add(resim)
uygulama_penceresi.connect('key-release-event', on_keyrelease)
uygulama_penceresi.set_app_paintable(True)
uygulama_penceresi.connect('draw', on_draw)
uygulama_penceresi.show_all()
def on_draw(widget, cr):
cr.set_source_rgba(0, 0, 0, 0)
cr.set_operator(cairo.OPERATOR_SOURCE)
cr.paint()
cr.set_operator(cairo.OPERATOR_OVER)
def yeni_saydamligi_ayarla(uygulama_penceresi, saydamlik_artir):
mevcut_saydamlik = uygulama_penceresi.get_opacity()
if saydamlik_artir is True and mevcut_saydamlik < 1:
mevcut_saydamlik += 0.1
elif saydamlik_artir is False and mevcut_saydamlik > 0.2:
mevcut_saydamlik -= 0.1
uygulama_penceresi.set_opacity(mevcut_saydamlik)
def on_keyrelease(uygulama_penceresi, olay):
if olay.keyval == Gdk.KEY_t:
uygulama_penceresi.set_decorated(True)
elif olay.keyval == Gdk.KEY_Escape:
uygulama_penceresi.set_decorated(False)
elif olay.keyval == Gdk.KEY_Up:
yeni_saydamligi_ayarla(uygulama_penceresi, True)
elif olay.keyval == Gdk.KEY_Down:
yeni_saydamligi_ayarla(uygulama_penceresi, False)
app = gtk.Application()
app.connect(‘activate’, on_activate)
if name == ‘main’:
app.run()
____________________________________main.py dosya içeriği sonu
Script dosyası olarak çalıştırmak isterseniz:
chmod +x main.py
animasyonlu_filigran.gif isimli bir GIF dosyasını main.py yanına koymalıyız.
Ekranda uygulama taşımayı aktif etmek için klavyeden “t”
Taşımayı iptal etmek için “Escape”
Saydamlığını/Opaklığını ayarlamak için ise “Yukarı Ok” ve “Aşağı Ok” tuşlarını kullanabiliriz.