Tüm KDE uygululamaları için, bilgi sağlar ve kontrol eder.Bu sınıfın bir nesnesi sadece bir uygulamada örnek olabilir. Bu örneğe daima 'kapp' yerel değişkeni üzerinden erişilebilir.
Bu sınıf tüm KDE uygulamaları için servisleri takip edebilmeyi sağlar.
- Olay kuyruğunu kontrol eder(bknz:QApplication)
- Hızlandırıcılar,ortak menü girişleri, bir KConfig nesnesi gibi KDE kaynaklarıyla uygulama sağlar.oturum yönetimi olayları,yardım vb..
- Zombi çocukları('Zombie Children' tam olarak ne demek istediğini anlamadığım için olduğu gibi çevirdim.) önlemek amacıyla SIGCHLD sinyali için bir sinyal işleyicisi yüklenir. Eğer bu sinyali kendimiz yakalamak istersek yada hiç yakalamak istemezsen, Kapplication yapıcısını çalıştırdıktan sonra yeni bir sinyal işleyicisi(ya da SIG_IGN) düzenleyebiliriz
- installSigpipeHandler() kullanılarak SIGPIPE sinyali için boş bir sinyal işleyici yükler.Eğer Bu sinyali kendimiz yakalamak istersek, Kapplication yapıcısını çalıştırdıktan sonra yeni bir sinyal işleyicisi düzenleyebiliriz.
- Yeni servisler çalıştırılabilir.
Başlatılmış bir service durumu, servisin masaüstündeki 'X-DCOP-Servistipi' girişine bağlı olur:
üç ihtimal var:
- X-DCOP-ServiceType=None (default), Daima yeni bir servis baştır,dcop ile servis kayıtlarına kadar beklemez.
- X-DCOP-ServiceType=Multi , Daima yeni bir servis başlatır, dcop ile servis kayıtlı olana kadar bekler.
- X-DCOP-ServiceType=Unique , Eğer başlatılmamış ise sadece servisi başlatır, dcop ile servis kayıtlı olana kadar bekler.
KApplication, miras aldığı sınıfların metotlarını kullandığı kadar kendi metotlarınada sahip(bknz:KApplication). Anca manager ailesinde benim görebildiğim kadarıyla miras aldığı QApplication sınıfındada bulunan bir metot kullanıyor.
Manager' lardaki kullanım olarak:
app=KApplication()
...
app.exec_()
Burada sonuç itibariyle bakılması gereken yer app.exec_() bu metod ile, fare'nin hareket olayları, yeniden boyutlandırma, düğmeye basma olayları gibi bütün olayları kabul eder. Bu döngü son pencere kapatıldığında biter.
QApplication ve KApplication sınıfları içinde manager'daki exec_() metodu exec() olarak bulunuyor.
Peki neden farklı yazılmış?
Bunun sebebi exec'in zaten bir python keyword'ü olması. Bu nedenle exec yerine exec_ kullanılmış.
Bu durumda KApplication yerine QApplication kullanabiliriz diye düşünüyorum.
Kaynaklar
Eksik ya da yanlış anladığım bölümler olabilir. Düzeltmekten çekinmeyiniz=)
YanıtlaSil