KIcon

9 Kasım 2010 Salı 06:13 Gönderen Merve Yüzbaşıoğlu 0 yorum
KIcon, QIcon sınıfından türetilmiş bir sınıftır. Yapıcıları hariç tüm metotları QIcon' dan miras alınmış. KDE simge özelliklerini sağlayan(destekleyen) QIcon sınıfının bir sarmalayıcı sınıfıdır. KIcon,Yükleme ve kaplama(grafik) performansına uygun bir KIconEngine ile Qicon oluşturmak için uygun bir sınıftır.

KIcon Constructors:

KIcon(const QString &iconName, KIconLoader *iconLoader, const QStringList &overlays) : Bir KDE stil ikonu ismini ve isteğe bağlı olarak özel bir ikon yükleyici alan yapıcıdır.
  • iconName : yüklemek için Kde ikonunun ismi
  • iconLoader : Bu ikonun yüklemesinde kullanılan yükleyici, ya da yerel ikon yükleyiciyi ön tanımlı olarak kullanabilmek için "null" olur
  • overlays : Bu ikonları uygulamak için overlays'lerin bir listesi
KIcon(const QString &iconName, KIconLoader *iconLoader) : Kolaylık sağlamak için aşırı yüklenmiş üye fonksiyondur. Yukarıdaki fonksiyonlardan tek farkı kabul ettiği parametredir.
KIcon(const QString &iconName) : Yukarıdaki yapıcı gibi aşırı yüklenmiş fonksiyonlardan biridir.
KIcon(const QIcon &copy) : Herhangi bir Qicon'u kopyalayan yapıcı
KIcon() : Boş bir ikon yapıcısı
~KIcon() : İkonu yok etmek için

Ek olarakta:

operator=(const KIcon &other)

Bu Yapıcıların kullanımını görmek için: kicon.cpp

Yönetici ailesinde KIcon kullanımı ile ilgili olarak:

  • widget = self.makeItemWidget(id_, name, description, type_, kdeui.KIcon(icon), state)
  • self.pushToggle.setIcon(kdeui.KIcon("media-playback-stop"))
  • self.labelIcon.setPixmap(kdeui.KIcon("document-encrypt").pixmap(48, 48))
  • self.labelIcon.setPixmap(kdeui.KIcon("document-decrypt").pixmap(48, 48))
  • self.pushToggle.setIcon(kdeui.KIcon("media-playback-start"))
  • self.pushEdit.setIcon(KIcon("preferences-other"))
  • self.pushDelete.setIcon(KIcon("edit-delete"))
Buradaki KIcon kullanımı nerdeyse birbiriyle aynı icon isimleri verilerek KIcon oluşturulmuş. Bunların içinde en göze çarpanı pixmap(48,48) metodu. Bu metod ise QIcon sınıfında aşırı yüklenmiş bir fonksiyondur.

QPixmap QIcon::pixmap ( int w, int h, Mode mode = Normal, State state = Off ) const


QSize(w, h) 'ın pixmap'ini geridöndürür. pixmap, beklediğimizden küçük olabilir ama daha büyük olmaz.

Not: QSize(w,h) fonksiyonu yükseklik ve genişliğin verilmesiyle bir boyut yapıcıdır.

Sonuç olarak KIcon'un kullandığı tüm metodlar için QIconu gönül rahatlığı ile kullanabiliriz.

Kaynaklar:

KApplication

8 Kasım 2010 Pazartesi 12:25 Gönderen Merve Yüzbaşıoğlu 0 yorum

KApplication, şekilde de görüldüğü üzere QApplication ve KInstance' dan miras alınarak oluşturulmuş bir sınıftır.

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