29 Kasım 2010 Pazartesi

KGlobal

Global nesnelere erişim için kullanılır. Process içerisinde sadece bir kez bulunan bazı merkezi nesnelere pointerlar yardımıyla erişim sağlar. KStaticDeleterBase in örneklerini yönetmekle de sorumludur.
Enumerationları:

enum CopyCatalogs { DoCopyCatalogs, DontCopyCatalogs }

Fonksiyonları

KComponentData activeComponent ()
QString caption ()
KCharsets * charsets ()
KSharedConfigPtr config ()
void deref ()
KStandardDirs * dirs ()
template
T findDirectChild (const QObject *object)
QObject * findDirectChild_helper (const QObject *parent, const QMetaObject &mo)
bool hasLocale ()
bool hasMainComponent ()
KLocale * locale ()
const KComponentData & mainComponent ()
void newComponentData (const KComponentData &c)
void ref ()
void setActiveComponent (const KComponentData &d)
void setAllowQuit (bool allowQuit)
void setLocale (KLocale *, CopyCatalogs copy=DoCopyCatalogs)
const QString & staticQString (const QString &str)
const QString & staticQString (const char *str)
mode_t umask ()

Fonksiyonları özetlersek;

  • KComponentData KGlobal::activeComponent ( ) şuanda aktif olan componentler için kullanılır.(KParts uygulaması gibi multi-component sistemlerde kullanışlıdır.)KAboutDialog ve KBugReport için kullanılmaz.
  • QString KGlobal::caption () pencere başlığı için bir text dönderir.
  • KCharsets * KGlobal::charsets () global karakter kümeleri için kullanılır.
  • KSharedConfig::Ptr KGlobal::config ( ) genel yapılandırma nesnelerini dönderir.
  • void KGlobal::deref() sadece bitmiş ref() tanımlamaları için kullanılır.
  • KStandardDirs* KGlobal::dirs () uygulamaların standart dirs nesnelerini dönderir.
  • T KGlobal::findDirectChild (const QObject *object )[inline] Seçilmiş bazı objelerin childlarını dönerir.
  • bool KGlobal::hasLocale ( ) :Kglobal in geçerli bir Klocal nesnesini dönderir.
  • bool KGlobal::hasMainComponent():geçerli bir KComponentData olup olmadığını dönderir.
  • KLocale * KGlobal::locale(): global locale nesne dönderir.
  • const KComponentData & KGlobal::mainComponent():Global component verisini dönderir. Bir uygulama da en az bir bileşende bulunur.
  • void KGlobal::ref():Var olan uygulamanın bitmesinden önceki bir çok işlem hakkında bilgi verir."last window closed" üzerindeki çıktı davranışı standarttır Ama bazı olaylarda last window closed daha uzun süre kullanılması gerekir yada herhangi system tray icon ile kullanılması gerekir.
  • void KGlobal::setActiveComponent (const KComponentData & d) :KAboutDialog ve KBugReport tarafından kullanılan aktif bileşenleri ayarlamaya yarar.
  • const QString & KGlobal::staticQString (const QString &str) :Static QString nesnesi oluşturmaya yarar.str parametresi alır ve string dönderir.
  • mode_t KGlobal::umask():Sürecin umask ını dönderir.

22 Kasım 2010 Pazartesi

KlocalizedString

KLocalizedString hakkında;
Yerelleştirilmiş mesajların üretilmesi ve kullanılması  için oluşturulmuş  sınıftır.KLocalizedString çeviri ve yerini alan özel ihtiyaçları kullanır ve yerelleştirilmiş mesaj dizilerine formatlar. Bu sınıf çoğunlukla doğrulukla kullanılmamalıdır, ama QString geri döndüren sarıcı i18n çağrıları yoluyla uygulamalarda yerelleştirme için kullanıcı mesajları görünür.Bir arkadaş fonksiyon içerisinde arkadaş olunan sınıfa ilişkin bir nesne tanımlanırsa, o nesne yoluyla sınıfın her bölümüne erişilebilir.


KLocalizedString ki18n  (   const char *    msg      )      [friend]         [1]

Verilmiş mesajdan yerelleştirilmiş bir dizi yaratır.

Gerçek KLocalizedString nesnelerine ihtiyaç duymadığınız zamanlarda i18n() şablonunu kullanabilirsiniz.
Bütün metin değişkenleri  UTF-8 ile kodlanmış olmak zorunda  ve boş veya NULL olmamalıdır.

Parameters:(Parametreler)
        msg     mesaj metni

Returns:(Geri Dönüş)
    KLocalizedString oluşturulur.



ki18n KLocalizedString'in arkadaş fonksiyonudur.

KLocalizedString ki18nc     (   const char *    ctxt,                        [2]
        const char *    msg
    )           [friend]

Verilmiş mesajdan yerelleştirilmiş bir dizi yaratır, eklenmiş kaynak ile.

Kaynak sadece anlam ayrımı amaçlıdır(Hem arayıcılar hem de çeviriciler için). Gerçek KLocalizedString nesnelerine ihtiyaç duymadığınız zamanlarda i18nc() şablonunu kullanabilirsiniz.
Bütün metin değişkenleri  UTF-8 ile kodlanmış olmak zorunda  ve boş veya NULL olmamalıdır.

Parameters:(Parametreler)
        ctxt    kaynak metni
        msg     mesaj metni

Returns:(Geri Dönüş)
    KLocalizedString oluşturulur.

KLocalizedString ki18ncp    (   const char *    ctxt,                 [3]
        const char *    singular,
        const char *    plural
    )           [friend]

Verilmiş çoğul ve tekil formlardan yerelleştirilmiş bir dizi yaratır, eklenmiş kaynak ile.

Kaynak sadece anlam ayrımı amaçlıdır(Hem arayıcılar hem de çeviriciler için). Gerçek KLocalizedString nesnelerine ihtiyaç duymadığınız zamanlarda i18ncp() şablonunu kullanabilirsiniz.
Bütün metin değişkenleri  UTF-8 ile kodlanmış olmak zorunda  ve boş veya NULL olmamalıdır.

Parameters:(Parametreler)
        ctxt    Kaynak metni
        singular    tekil mesaj metni
        plural  çoğul mesaj metni

Returns:(Geri Dönüş)
    KLocalizedString oluşturulur.

KLocalizedString ki18np     (   const char *    singular,                       [4]
        const char *    plural
    )           [friend]

Verilmiş çoğul ve tekil formlardan yerelleştirilmiş bir dizi yaratır.Gerçek KLocalizedString nesnelerine ihtiyaç duymadığınız zamanlarda i18np() şablonunu kullanabilirsiniz.
Bütün metin değişkenleri  UTF-8 ile kodlanmış olmak zorunda  ve boş veya NULL olmamalıdır.


Parameters:(Parametreler)
        singular    tekil mesaj metni
        plural  çoğul mesaj metni

Returns:(Geri Dönüş)
    KLocalizedString oluşturulur.

Managerlarda Kullanımı

aboutData.addAuthor(ki18n("Gökmen Göksel"), ki18n("Current Maintainer"))
aboutData.addAuthor(ki18n("Bahadır Kandemir"), ki18n("First Developer"))
aboutData.setTranslator(ki18nc("NAME OF TRANSLATORS", "Your names"), ki18nc("EMAIL OF TRANSLATORS", "Your emails"))


[1] http://api.kde.org/4.0-api/kdelibs-apidocs/kdecore/html/classKLocalizedString.html#a216313bcb2a32d2aa64e93932d1796a5

[2] http://api.kde.org/4.0-api/kdelibs-apidocs/kdecore/html/classKLocalizedString.html#adc69c0df5eae956e082bdf6bfa6bd9d5

[3]  http://api.kde.org/4.0-api/kdelibs-apidocs/kdecore/html/classKLocalizedString.html#a5424a880c988c841bc62b12d55efa8f7

[4] http://api.kde.org/4.0-api/kdelibs-apidocs/kdecore/html/classKLocalizedString.html#a5424a880c988c841bc62b12d55efa8f7

10 Kasım 2010 Çarşamba

KCmdLineOptions

Komut satırı seçeneklerini tutan sınıftır. Bu sınıf, birlikte kullanılacağı KCmdLineArgs sınıfına yönelik komut satırı argümanlarını ayrıştırmada ve bu argümanları tutmada güçlü olmasını sağlar.

#include şeklinde import edilir.

Sınıfın tanımlamasına http://api.kde.org/4.x-api/kdelibs-apidocs/kdecore/html/kcmdlineargs_8h_source.html adresindeki kcmdlineargs.h kodunun 48. satırından itibaren erişebiliriz:

class KDECORE_EXPORT KCmdLineOptions
{

friend class KCmdLineArgs;
friend class KCmdLineArgsStatic;
public:
KCmdLineOptions ();
KCmdLineOptions (const KCmdLineOptions &options);
KCmdLineOptions& operator= (const KCmdLineOptions &options);
~KCmdLineOptions ();
KCmdLineOptions &add (const QByteArray &name,
const KLocalizedString &description = KLocalizedString(),
const QByteArray &defaultValue = QByteArray());
KCmdLineOptions &add (const KCmdLineOptions &options);
restore
private:
KCmdLineOptionsPrivate *d; //krazy:exclude=dpointer (for operator=)

};

Yapıcı ve Yıkıcısı

KCmdLineOptions::KCmdLineOptions() ;Yapıcı
KCmdLineOptions::KCmdLineOptions(const KCmdLineOptions &options) ;Kopya yapıcı
KCmdLineOptions::~KCmdLineOptions() ;Yokedicisi

Üye fonksiyonları

KCmdLineOptions & KCmdLineOptions::add (const QByteArray & name,
const KLocalizedString & description = KLocalizedString(),
const QByteArray & defaultValue = QByteArray()
)

KCmdLineOptions & add (const KCmdLineOptions &options)
KCmdLineOptions & add (const QByteArray &name, const KLocalizedString &description=KLocalizedString(), const QByteArray &defaultValue=QByteArray())
KCmdLineOptions(const KCmdLineOptions &options)
KCmdLineOptions()
KCmdLineOptions & operator= (const KCmdLineOptions &options)
~KCmdLineOptions ()

Komut satırına option ekleme işlemi, optionun ismi,tanımlaması ve mümkün bir varsayılan değeri ile sağlanır.
KCmdLineOptions & KCmdLineOptions::add (const KCmdLineOptions & options ) :
Option ekleyen başka bir KCmdLineOption nesnesidir.

KCmdLineOptions & KCmdLineOptions::operator= (const KCmdLineOptions & options):
Atama operatörü

PyQt tarafından baktığımızda ise:

QApplication.__init__ (self, list-of-str argv) metodu içerisinde karşılaşıyoruz. Özel olarak QCmdLineOption gibi bir sınıf yoktur. Bir uygulama nesnesindeki window sistem ve yapıları argv içerisindeki argc komut satırı argümanı ile başlatır.

Bütün qt programları aşağıdaki komut satırı optionlarını otomatik olarak destekler:
*style=uygulamanın Gui stilini ayarlamak için kullanılır. Mümkün değerleri motif, windows ve platinum tür.
*stylesheet=Uygulamanın stylesheet ayarlamasının yapılabileceği kısımdır. Degeri içinde stylesheetleri içeren bir dosya yolu sayesinde alınmalıdır.
*session=uygulamanın bir önceki oturumunu iyileştirmek için kullanılır.
-widgetcount=Widgetlerin maximum sayılarını ve hatalı widget için debug mesajı yazdırır.
-reverse, Qt.RightToLeft için uygulamanın düzenli dosyalarını ayarlar.
-graphicssystem, widgets ve QPixmaps için kullanılan backend dosyalarını ayarlar.Degeri raster veya opengl olabilir.

Command line options:
-h ;yardım mesajını görüntüler.
-V ;SIP versiyon numarasını gösterir.
-c dir ;Kod dosyasını ismini verir.(Varsayılan olarak oluşturulmaz)
-d file ;Dökümantasyon dosyasının ismini verir.
-m file ; makefaile dosyasının ismini verir.
-I dir ;dosya eklendiğinde bu dosyayı gösterir.
-s suffix ;C++ Kaynak dosyası için suffix kullanımı
-p module ;oluşturulan c++ modulunun ismini
-file ;tanımlanan bir dosyanın ismini verir.

KSystemTrayIcon

Miras diagramı:



KSystemTrayIcon modülü, QSystemTrayIcon modülünü miras almaktadır.
QSystemTrayIcon sistem tepsisindeki bir uygulama için bir ikon oluşturmamızı sağlar. Modern işletim sistemlerinin hemen hemen hepsinde masaüstünün özel bir yerinde sistem çekmecesi veya bildirim alanı diye adlandırılan bir bölüm bulunur. Bu bölümde sistemde çalışır durumdaki uygulamaların ikonları ve kısa mesajları görüntülenir.
KSystemTrayIcon KDE platformunda kullanılır. Sistem tepsisinde bir ikona sol mouse butonuyla tıklandığında uygulamanın ana penceresi açılır, sağ mouse butonuyla tıklandığında popup menü ile uygulamaların listesi gösterilir.

Public Slotlar
void
KSystemTrayIcon::toggleActive()
: toggle üzerine girdi olup olmadığını dinler.

Sinyaller:

void quitSelected(): Bir işlemi yerine getirdikten sonra ana pencerenin kapatılmasına yarayan sinyaldir.
Public üye fonksiyonlar:

KSystemTrayIcon (QWidget *parent=0): Sınıfın yapıcısıdır. Tepsi penceresine tıklandığında parent widget görünür.
KSystemTrayIcon (const QString &icon, QWidget *parent=0): Yukarıdaki yapıcıyla aynı işi yapar ancak ayrıca sistem tepsisinde kullanılabilecek ikonun ismiyle tanımlanmasını sağlar.

KSystemTrayIcon (const QIcon &icon, QWidget *parent=0): Yukarıdaki yapıcıyla aynı işi yapar.

~KSystemTrayIcon (): Sınıfın yokedicisi.

KActionCollection * actionCollection (): Context menu içindeki olaylara kolay erişim için kullanılır.

QWidget * parentWidget () const: Yapıcı tarafından atanan QWidget'i döndürür.

bool parentWidgetTrayClose () const : Bu fonksiyon false değeri döndürdüğünde pencere kapatma işlemi normal olarak gerçekleştirilir. True değeri döndürdüğünde sistem tepsisiyle ilişkili bir işlem gerçekleştirilir.

static QIcon loadIcon (const QString &icon, const KComponentData &componentData=KGlobal::mainComponent()): Verilen componentDatanın ikon yükleyici sınıfı kullanılarak bir icon yüklenir. Bu ikon sadece sistem tepsisinde gösterilir.

KActionMenu

KActionMenu için miras diyagramı:




KActionMenu başka eylemlerin bir alt menüsünü tutan kendine özgü birçok özelliğe sahip eylemdir.
Herhangi bir QAction alt menü oluşturmak için kullanılabilir.

Popupmenu eklemek, alt menü oluşturur. Araç çubuğu eklemek, alt menü ile buton oluşturur.


Public üye fonksiyonları:
KActionMenu (QObject *parent): Sınıfın yapıcısıdır. Miras alınan KAction sınıfının setShortcutConfigurable(bool configurable) fonksiyonuna false parametresi vererek kullanıcıya kısayolları düzenleyemeyeceğini gösterir.
KActionMenu (const QString &text, QObject *parent): Sınıfın yapıcısıdır. Burada da setShortcutConfigurable(bool configurable) fonksiyonuna false parametresi vererek. Kullanıcıya kısayolları düzenleyemeyeceğini gösterilir. Ayrıca text argumanı setText() fonksiyonuna parametre olarak girilir.
KActionMenu (const KIcon &icon, const QString &text, QObject *parent): Sınıfın yapıcısıdır. KAction sınıfının KAction (const KIcon &icon, const QString &text, QObject *parent) yapıcısını gerçekleştirir. Burada kısayolu oluşturacak icon, ve text parametreleri girilir ( örneğin &Options, icon: & , text: Options, O Option için kısayol oluşturur.
~KActionMenu (): yokedici.
void addAction (QAction *action): QMenu sınıfının addAction() modulünü çağırır. Eylemlerin menü listesine action eylemini ekler.
QAction * addSeparator (): Bir eylemin separator (ayırıcı) olarak atanmasını sağlar

virtual QWidget * createWidget (QWidget *parent): QWidgetAction sınıfından implement edilir. Özel widgetleri destekleyen taşıyıcı widgete bir eylem eklenmek istendiğinde bu fonksiyon çağırılır.
bool delayed () const: KToolBar bağlanıldığında gecikme penceresi oluşursa true döndürür.
void insertAction (QAction *before, QAction *action): Eylem ekler.
QAction * insertSeparator (QAction *before): Menuye ayırıcı eylem ekler.
KMenu * menu (): Bir menu varsa bu eylemin menusünü bir KMenu olarak geri döndürür. Eğer menü yoksa bir tane oluşturur.
KMenu * popupMenu ():Bir menu varsa bu eylemin menusünü bir KMenu olarak geri döndürür. Eğer menü yoksa bir tane oluşturur.
void remove (KAction *): Menüden KAction tipinde bir eylemi kaldırır.
void removeAction (QAction *action): Menüden QAction tipinde bir eylemi kaldırır.
void setDelayed (bool delayed): delayed=true ise, KToolBar bağlanıldığında bu eylem delayed popup menu oluşturacaktır.
void setMenu (KMenu *menu): menüyü ayarlar.

9 Kasım 2010 Salı

KNotification

KNotification için miras diyagramı
KNotification bir olayı kullanıcıya bildirmek için kullanılır.
İki çeşit bildirim tipi vardır.
* Geri bildirim olayları : Bu bildirimler ,kullanıcının pencereyi maximize etmesi gibi o anda kullanıcının gerçekleştirdiği olaylar içindir.Bildirim esnasında ses çalmasını da sağlayabilir. Anlık bildirimlerdir. Bu tip bildirimler çok kısa zaman aralığında gerçekleşir ve sonlanırlar.
* Kalıcı bildirimler : Kullanıcı yeni bir mesaj aldığında yada kullanıcının bilmesi gerektiği önemli bir olay gerçekleştiğinde verilen bildirimler bu tip bildirimlerdir. Bu bildirimlerin bir başlangıcı ve sonu vardır. Bildirim olay meydana geldiğinde başlar ve kullanıcı kabul edene yada okuyana kadar devam eder.

Örneğin anlık mesajlaşma uygulamalarındaki kalıcı bildirimler : kullanıcıya bir mesaj geldiğinde uygulama bildirim yayar.Bildirim kutusu; kullanıcının mesajı okuyup close() slotunu kullanana dek kapanmaz.

Bildirim yapmak için , bildirimin varsayılan parametrelerinin olduğu bir tanımlama dosyası yaratmamız gerekmektedir. Ardından uygulamanın kodları arasında -bildirimin gerçekleştirildiği yerde- "KNotification:event" i kullanmalıyız. Geri dönen KNotification işaretcisi signal - slot bağlamalarında kullanılabilir.

Global Config Dosyası

Bir uygulamanın config dosyası "$KDEDIR/share/apps/appname/appname.notifyrc" dizininde bulunmalıdır. Bu dosya 3 ana bölümden oluşur.

1. Global bilgi
2. İçerik bilgisi
3. Uygulamaya özel olayların tanımlamaları
                   [Global]
IconName=Filename
Comment=Friendly Name of app
                   [Context/group]
Name=Group name
Comment=The name of the group for contacts
[Context/folder]
Name=Group name

[Event/newmail]
Name=New email
Comment=You have got a new email
Contexts=folder,group
Action=Sound|Popup
                   [Event/contactOnline]
Name=Contact goes online
Comment=One of your contact has been connected
Contexts=group
Sound=filetoplay.ogg
Action=None
Örneğin yakuake uygulamasının yakuake.notifyrc dosyası şu şekildedir:

[Global]
IconName=yakuake
Comment=yakuake

[Event/startup]
Name=Yakuake Started
Comment=Yakuake has just been started
Action=Popup

Global kısmındaki IconName kısmına simgenin sadece adını yazmalıyız.

Context kısmı widgetin yapılandırımıyla ilişkili bilgiler içerir.

Event kısmı ise config dosyasının en önemli bölümüdür. Uygulamanın hangi olayda hangi bildirimi vermesi gerektiği burada yer alır. Her bildirilebilir olay için varsayılan değerler bu bölümde bulunur.

Kullanıcının Config Dosyası

Uygulama detayı içeren yapılandırma dosyasıdır.

Bu yapılandırma dosyası iki kısımdan oluşur.

1)İçerik Bilgisi
2)Olay Yapılandırılması

İçerik Bilgisi: Yapılandırma penceresi hakkında bilgi içerir. Bu bölümde hem dahili "id"ler hem de kullanıcının görebileceği string ifadeler bulunur.
                   [Context/group]
Values=1:Friends,2:Work,3:Family
Olay Yapılandırılması : Olayların kullanıcıya özel yapılandırma bilgileri bu bölümdedir.
                   [Event/contactOnline]
Action=Sound
Sound=/usr/share/sounds/super.ogg
                   [Event/contactOnline/group/1]
Action=PassivePopup|Sound
Parametreler

eventId Olayın adı

text Açılan popup penceredeki bildirim hakkındaki yazı

pixmap Açılan popuptaki resim.

widget Bildirimin yapıldığı yerdeki widge
KNotification *KNotification::event(
StandardEvent eventid , const QString& text,
const QPixmap& pixmap, QWidget *widget, const NotificationFlags &flags)

Bu metod tam anlamıyla (bütün parametreleri ayarlanmış) bir KNotification yaratır ve bizim ayrıca "SendEvent"i çağırmanıza gerek yoktur.

Signal - slotların iletişiminde bu işaretçi kullanılabilir ve kullanılan işaretçi otomatik olarak olay sonlandığında silinir.

Ayrıca CloseOnTimeOut ve CloseWhenWidgetActivated olarak ayarlanan bildirimlerin , kullanıcının kapatmasına gerek duymadan kapatılacağını unutmamamız gerekmektedir. Aksi takdirde kullanıcı için çok kritik bir bildirimin zaman aşımıyla yada widget aktif olduğunda otomatik olarak kaybolmasına neden olabiliriz.



Kaynak : KNotification Class Reference

KIcon

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:

8 Kasım 2010 Pazartesi

KCmdLineArgs

KCmdLineArgs sınıfı, KDE'nin oluşturmuş olduğu bir sınıf.

Sınıfın amacı komut satırı argümanlarıyla ilgili olan işleri halletmek.

Yönetici ailesindeki kullanımı şu şekilde:

KCmdLineArgs.init(sys.argv, aboutData)
args = KCmdLineArgs.parsedArgs()

init() metodu, argümanları almayı sağlıyor, ilk parametrede argümanları veriyoruz, ikincisinde de programı açıklayan KAboutData nesnesini vermemiz gerekiyor. Bu şekilde başlattıktan sonra da args değişkenine parsedArgs() metodunu kullanarak atabiliyoruz.

Alternatif olarak aslında bir şey kullanmaya gerek yok gibi görünüyor. Zaten QApplication ve QUniqueApplication argüman olarak bunları alabiliyor yani sys.argv verebiliyoruz.

KCmdLineArgs belgelendirme adresi:

http://api.kde.org/4.x-api/kdelibs-apidocs/kdecore/html/classKCmdLineArgs.html

KUniqueApplication

KUniqueApplication, KApplication'dan türetilmiş bir sınıf. KApplication'dan farkı sadece tek süreç (process) kullanıyor olması. Genel olarak KApplication'un aynısıdır diyebiliriz.

KApplication harici eklenmiş metotlar şu şekilde:

  • addCmdLineOptions()
  • newInstance()
  • restoringSession()
  • setHandleAutoStarted()
  • start()
  • yapıcılar (KUniqueApplication())
  • yokediciler (~KUniqueApplication())

değişkenler ise:

  • StartFlag
  • NonUniqueInstance
Buradaki en önemli metot newInstance() metodu. Bununla uygulamanın bir kopyası oluşturuluyor. Bununla yaratılmış uygulamanın normal uygulama gibi davranması için NonUniqueInstance bayrağı start() ile belirlenmelidir. Eğer komut satırı özellikleri kullanmak isteniyorsa start'dan önce addCmdLineOptions() metodu çalıştırılmalıdır.

Bu sınıfın yönetici ailesinde ve diğer yerlerdeki kullanım şekli genelde şu şekilde oluyor:

app = KUniqueApplication(True, True)

Buradaki True olan değişkenler şu şekilde

GUIenabled -> False olursa GUI'yi kapatıyor. Varsayılan zaten True.
configUnique -> Eğer True yapılırsa, uygulamanın tekliği, uygulamanın yapılandırma dosyasındaki KDE grubunda bulunan MultipleInstances anahtar değerine bağlı olur.

Bunun yerine kullanılacak sınıf QApplication yerine QtSingleApplication olmalı bence. QtSingleApplication da QApplication sınıfından türemiş.

KUniqueApplication belgelendirme adresi:

http://api.kde.org/4.x-api/kdelibs-apidocs/kdeui/html/classKUniqueApplication.html


QtSingleApplication belgelendirme adresi:

http://doc.qt.nokia.com/solutions/4/qtsingleapplication/qtsingleapplication.html

KApplication


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