Qt LinksQt Bağlantıları


  • http://qt-project.org/
  • http://qt-project.org/doc/qt-4.8/
  • http://qwt.sourceforge.net/
  • Book
    • http://www.ics.com/designpatterns/book/index.html
  • Snippets / wiki
    • http://qt-project.org/wiki/Dpointer
    • http://qt-project.org/wiki/How_to_create_a_multi_language_application
    • http://qt-project.org/wiki/Category:Snippets
    • http://qt-project.org/wiki/ApplicationRestart
    • http://qt-project.org/wiki/Assigning_a_file_type_to_an_Application_on_Windows
    • http://qt-project.org/wiki/Custom_IO_Device
  • QtCreator
    • http://qt-project.org/wiki/QtCreatorStyling
    • http://qt-project.org/wiki/Qt_Creator_Documentation_Gallery
  • Necessitas
    • http://necessitas.kde.org/
    • http://community.kde.org/Necessitas
    • http://files.kde.org/necessitas/installer/release/
  • Coding
    • http://qt-project.org/wiki/API-Design-Principles
    • http://techbase.kde.org/Policies/Library_Code_Policy
    • http://doc.qt.digia.com/qtcreator-extending/coding-style.html
    • http://qt-project.org/wiki/Qt_Coding_Style
    • http://qt-project.org/wiki/Coding-Conventions
    • http://qt-project.org/wiki/UI_Text_Conventions
  • temp
    • http://qt-project.org/wiki/Qt_for_Embedded_Linux
    • http://www.vcreatelogic.com/products/gcf/
    • http://qt-project.org/wiki/Qbs-Quick-Reference
    • http://android.wooyd.org/JNIExample/files/JNIExample.pdf


  • http://qt-project.org/
  • http://qt-project.org/doc/qt-4.8/
  • http://qwt.sourceforge.net/
  • Kitap
    • http://www.ics.com/designpatterns/book/index.html
  • Kod Parçaları / Viki
    • http://qt-project.org/wiki/Dpointer
    • http://qt-project.org/wiki/How_to_create_a_multi_language_application
    • http://qt-project.org/wiki/Category:Snippets
    • http://qt-project.org/wiki/ApplicationRestart
    • http://qt-project.org/wiki/Assigning_a_file_type_to_an_Application_on_Windows
    • http://qt-project.org/wiki/Custom_IO_Device
  • QtCreator
    • http://qt-project.org/wiki/QtCreatorStyling
    • http://qt-project.org/wiki/Qt_Creator_Documentation_Gallery
  • Necessitas
    • http://necessitas.kde.org/
    • http://community.kde.org/Necessitas
    • http://files.kde.org/necessitas/installer/release/
  • Kodlama
    • http://qt-project.org/wiki/API-Design-Principles
    • http://techbase.kde.org/Policies/Library_Code_Policy
    • http://doc.qt.digia.com/qtcreator-extending/coding-style.html
    • http://qt-project.org/wiki/Qt_Coding_Style
    • http://qt-project.org/wiki/Coding-Conventions
    • http://qt-project.org/wiki/UI_Text_Conventions
  • Geçici
    • http://qt-project.org/wiki/Qt_for_Embedded_Linux
    • http://www.vcreatelogic.com/products/gcf/
    • http://qt-project.org/wiki/Qbs-Quick-Reference
    • http://android.wooyd.org/JNIExample/files/JNIExample.pdf
1
2
3
4
// highlight test
QApplication app;
for(size_t i=0;;);
app.exec();

Animated Qt Grid LayoutQt İçin Animasyonlu Izgara Yerleşimi

Animasyon ile görsel nesneleri hareket ettirmek istediğimizde Qt‘de C++ için hazır bir çözüm bulamıyoruz. Nesnelere hareket verebilmek için kullanabileceğimiz birkaç seçeneğimiz var. Bunlardan biri yerleştirici (Layout) kullanmadan alt nesnelerin geometrilerini elle hesaplamak ve geometri geçişlerinde animasyon kullanmak. Bir diğer yöntem de özel bir yerleştirici yazarak geometri hesabı ve yer değiştirmeyi ona yaptırmak.

Kodun tekrar kullanılması gerekmediği ve yapılacak görsel etkinliğin (animasyon ile geometri değişimi gibi) genelleştirilmesinin zor olduğu durumlarda yerleştirici içermeyen seçeneği kullanabiliriz. Bu durumda QWidget’tan türeyen ve QWidget::resizeEvent() fonksiyonunu devralan bir fonksiyon yazarak alt nesneleri uygun şekilde boyutlandırmamız gerekiyor. Geometri geçişlerini sağlamak için de Animation Framework kullanabiliriz. Bu yöntemle oluşturduğumuz görsel etkinliği başka bir yerde kullanmak istersek kodu kopya-yapıştır yapmak gerekecek ve yeni duruma göre tekrar zaman harcamamız gerekecek.

İkinci yöntemde bahsettiğim yeni bir yerleştirici ile bu işlemin yapılması durumunda kodumuzun tekrar kullanımı oldukça kolaylaşacaktır. Yeni bir yerleştirici yapmak için QLayout sınıfından yeni bir sınıf türetmemiz ve saf sanal (pure virtual) fonksiyonlarını devralmamız gerekiyor. Yeni yerleştirici yapmak için Qt belgelerindeki Layout Management sayfasına bakabilirsiniz. Sayfada bulabileceğiniz iki örnek yerleştirici bulabilirsiniz. Ayrıca Qt kaynak kodlarındaki temel yerleştiricilere de bakmak oldukça faydalı olacaktır.

Şirketimizde geliştirdiğimiz microCOR Ekg Yazlımında kullandığımız ızgara şeklindeki Ekg grafiklerinin (bu şekle Ekg Görünümü diyoruz) daha iyi değerlendirilebilmesi için sadece bir grafiğe odaklanılmasını sağlıyoruz (buna da Kanal Görünümü diyoruz). Ekg Görünümünden Kanal Görünümüne geçişte basit bir şekilde ilgilenilmeyen grafikleri gizliyorduk. Görünen tek kanal grafik de Qt’nin yerleştirici sistemi sayesinde ana nesneyi kaplıyor ve büyütülmüş oluyordu. Kanal görünümüne yapılan bu geçişte ve Ekg Görünümüne geri dönüşünde kullanıcıya görsel ve mantıksal ilişkiyi sağlamak oldukça zorlaşıyordu. Geçişin daha rahat algılanabilmesi için animasyon yapan bir yerleştiriciye ihtiyacımız vardı. Bunun gibi bir yerleştirici gerektiğinde benim de faydalandığım kaynaklar yukarıda bahsettiğim Qt belgeleri ve kaynak kodları oldu.

QAnimatedGridLayout yerleştiricisi içine yerleştirilen nesneleri ızgara şeklinde yerleştiriyor ve ızgaradaki seçilen bir nesnenin ana nesneyi kaplanmasını sağlayabiliyor. Görünmemesi gereken diğer ızgara nesnelerini de ana nesnenin (veya belirtilen başka bir nesnenin) görünen alanının dışına taşıyarak gizlenmelerini sağlıyor. Bu taşıma ve büyütme işlemlerini de Animation Framework kullanarak yapıyor. Animasyon tipi QEasingCurve ile, geçiş süresi de bir fonksiyon ile belirlenebiliyor.

QAnimatedGridLayout kodlarını ve örnek bir programın içinde nasıl kullanıldığını görmek için github.com/huseyinkozan/QAnimatedGridLayout sayfasına bakabilirsiniz. Aşağıda da animasyonun nasıl çalıştığını gösteren bir ekran kaydı bulabilirsiniz.

Fixed Ratio LayoutSabit Oranlı Layout

There is no directly supported a fixed ratio layout in Qt4. If we want to make a fixed ratioed layout, we must derive a new class from QLayout and override some of its functions. These functions not only for ratio purposes, but also support for adding and removing new items to the layout.

Qt4 ile sabit oranlı bir layout doğrudan desteklenmiyor. Sabit oranlı bir layout yapabilmek için QLayout’dan yeni bir sınıf türetmemiz gerekiyor. Türetme işlemi yapılırken orantı ile ilgili olmayan, fakat layout a nesne ekleyip çıkarabimek için bazı fonksiyonları da devralmamız gerekiyor.

Continue reading