
Kumpulan KDAB adalah perunding perisian untuk aplikasi Qt, C ++ dan OpenGL untuk platform yang berbeza (desktop, embedded dan mobile), selain itu memberi tunjuk ajar untuk mengembangkan aplikasi Qt dari awal dan dalam memindahkan semua bingkai popular ke Qt.
Selama bertahun-tahun, KDAB telah menyumbang dan membiayai pembangunan QDockWidget. Tetapi kerana perubahan dan perbaikan bug memerlukan banyak hari untuk dilaksanakan, menggunakan QdockWidget, Ternyata itu bukan pilihan yang baik, sehingga melahirkan KDDockWidgets.
KDDockWidgets adalah kerangka dok maju untuk QDockWidgets, dengan itu memperluas penggunaannya dengan menambahkan fungsi yang tidak disokong oleh QDockWidgets.
QdockWidget secara semula jadi menggabungkan kod GUI dengan logik dengan keadaan, sebagai menjadikannya sangat sukar untuk maju dengan ciri baru, yang menyebabkan kerumitan yang besar dalam pelaksanaannya dalam platform yang berbeza. Oleh kerana ia adalah komponen asas dari rangkaian antara muka pengguna grafik, dengan itu anda dapat memindahkan seluruh elemen tetingkap (bar alat, kumpulan widget, dll.) Ke mana sahaja anda mahu.
Walau bagaimanapun, KDAB berpendapat bahawa penyelenggaraan kod QDockWidgets tidak begitu mudah, semasa dia menyatakan bahawa:
KDDockWidgets lahir dari keperluan saya untuk menjaga kewarasan saya setelah mengusahakan dua projek yang memerlukan penyesuaian yang luas. Tempat di mana kami berusaha untuk bekerja secara langsung di hulu tetapi kadar regresi akhirnya terlalu banyak.
Dan satu lagi di mana saya mengambil jalan menggunakan API peribadi, acara tetikus palsu, dan penapis acara, yang pada awalnya kelihatan seperti idea yang baik, tetapi akhirnya menjadi dunia yang penuh kesakitan. Pelanggan kami juga semakin kreatif dengan permintaan mereka, jadi jelas bahawa kami memerlukan rangka kerja yang lebih baik.
Masalah utama adalah reka bentuknya, cukup monolitik tetapi dapat dikonfigurasi (kita boleh memilih fungsi yang tersedia untuk pengguna, walaupun hanya sebilangan kecil yang dilakukan, untuk animasi), dengan kod spaghetti (dengan senang hati mencampurkan logik dan keadaan komponen). Oleh itu, sebarang perubahan boleh membuat sejumlah besar regresi.
Itulah sebabnya KDAB telah memutuskan untuk membuat KDDockWidgets, dengan itu ia bertujuan untuk mempermudah reka bentuk QDockWidgets, sambil memudahkan penyesuaiannya dengan situasi tertentu.
KDDockWidgets menyediakan fungsi berikut:
- Mampu menyambungkan widget di tetingkap terapung dan mengikat kumpulan itu ke tetingkap utama
- Pasang tetingkap mana pun, bukan hanya tetingkap utama
- Docking ke tengah tingkap utama
- Sokongan untuk tab yang boleh dilepas di widget pusat dalam tetingkap utama
- Mampu melepaskan tab dari bar tab di kawasan dok
- Keupayaan untuk menggabungkan beberapa tab dengan menggabungkan pelbagai komponen.
- Paparkan widget bantuan dalaman supaya pengguna dapat menyesuaikannya atau menyediakannya sendiri.
- Kumpulan komponen boleh beralih dari tetingkap luaran (yang hanya mengandungi kumpulan komponen ini) ke tetingkap utama (ciri yang sebahagiannya dilaksanakan dalam Qt 5.10).
- Sesuaikan widget tab
- Sesuaikan bar tajuk
- Sesuaikan bingkai tetingkap
- Selain menekankan bahawa perubahan utama adalah penambahan indikator tepat untuk menghapus elemen dari GUI, di samping itu gagasan widget pusat hilang, karena dengan demikian ia bukan lagi elemen tertentu.
Organisasi baru dengan jelas memisahkan logik dari antara muka grafik, sehingga jangka masa yang mendasari adalah dengan mudah boleh digunakan semula untuk antara muka Qt Quick (yang akhirnya diharapkan). Ini juga memudahkan untuk menyesuaikan antara muka, pengguna dapat menyediakan widget mereka sendiri untuk setiap bahagian antara muka.
Selain itu, KDDockWidgets dimaksudkan untuk menjadi kerangka kerja, sehingga Anda dapat dengan mudah mengganti antara muka untuk memberikan penampilan dan tingkah laku tersuai. KDDockWidgets adalah rangka kerja sumber terbuka, yang berada di bawah lesen GPLv2 dan GPLv3.
Kod KDDockWidgets dan demo juga ada Dalam pautan berikut.