Διαθέσιμη έκδοση Alpha του Qt 6.0

Qt Company ανακοινώθηκε σχετικά με τη μετάφραση του νήματος Qt 6 στο στάδιο της άλφα δοκιμής. Το Qt 6 περιλαμβάνει σημαντικές αρχιτεκτονικές αλλαγές και απαιτεί έναν μεταγλωττιστή που υποστηρίζει το πρότυπο C++17 για την κατασκευή. Ελευθέρωση προγραμματισμένος από την 1η Δεκεμβρίου 2020.

Κλειδί χαρακτηριστικά Qt 6:

  • Ένα αφηρημένο API γραφικών που είναι ανεξάρτητο από το 3D API του λειτουργικού συστήματος. Ένα βασικό στοιχείο της νέας στοίβας γραφικών Qt είναι η μηχανή απόδοσης σκηνής, η οποία χρησιμοποιεί το επίπεδο RHI (Rendering Hardware Interface) για να τροφοδοτεί τις εφαρμογές Qt Quick όχι μόνο με το OpenGL, αλλά και πάνω από τα Vulkan, Metal και Direct 3D API.
  • Μονάδα Qt Quick 3D με API για τη δημιουργία διεπαφών χρήστη με βάση το Qt Quick, συνδυάζοντας στοιχεία γραφικών 2D και 3D. Το Qt Quick 3D σάς επιτρέπει να χρησιμοποιείτε την QML για να ορίζετε στοιχεία διεπαφής 3D χωρίς τη χρήση της μορφής UIP. Στο Qt Quick 3D, μπορείτε να χρησιμοποιήσετε ένα χρόνο εκτέλεσης (Qt Quick), μια διάταξη σκηνής και ένα πλαίσιο κινούμενων εικόνων για 2D και 3D και να χρησιμοποιήσετε το Qt Design Studio για την ανάπτυξη οπτικής διεπαφής. Η μονάδα επιλύει προβλήματα όπως τα μεγάλα έξοδα κατά την ενσωμάτωση της QML με περιεχόμενο από το Qt 3D ή το 3D Studio και παρέχει τη δυνατότητα συγχρονισμού κινούμενων εικόνων και μετασχηματισμών σε επίπεδο καρέ μεταξύ 2D και 3D.
  • Αναδιάρθρωση της βάσης κώδικα σε μικρότερα στοιχεία και μείωση του μεγέθους του βασικού προϊόντος. Τα εργαλεία προγραμματιστών και τα εξειδικευμένα στοιχεία θα παρέχονται ως πρόσθετα που διανέμονται μέσω του καταστήματος καταλόγου Qt Marketplace.
  • Σημαντικός εκσυγχρονισμός της QML:
    • Ισχυρή υποστήριξη πληκτρολόγησης.
    • Δυνατότητα μεταγλώττισης QML σε αναπαράσταση C++ και κώδικα μηχανής.
    • Η δημιουργία πλήρους υποστήριξης JavaScript ως επιλογή (η χρήση μιας μηχανής JavaScript με πλήρεις δυνατότητες απαιτεί πολλούς πόρους, γεγονός που αποτρέπει τη χρήση QML σε εξοπλισμό όπως μικροελεγκτές).
    • Άρνηση έκδοσης εκδόσεων σε QML.
    • Ενοποίηση δομών δεδομένων που αντιγράφονται σε QObject και QML (θα μειώσει την κατανάλωση μνήμης και θα επιταχύνει την εκκίνηση).
    • Απομάκρυνση από τη δημιουργία δομών δεδομένων σε χρόνο εκτέλεσης προς όφελος της δημιουργίας χρόνου μεταγλώττισης.
    • Απόκρυψη εσωτερικών στοιχείων μέσω της χρήσης ιδιωτικών μεθόδων και ιδιοτήτων.
    • Βελτιωμένη ενσωμάτωση με εργαλεία ανάπτυξης για ανακατασκευή και διάγνωση σφαλμάτων χρόνου μεταγλώττισης.
  • Προσθήκη εργαλείων για την επεξεργασία στοιχείων που σχετίζονται με γραφικά κατά το χρόνο μεταγλώττισης, όπως η μετατροπή εικόνων PNG σε συμπιεσμένες υφές ή η μετατροπή των shaders και των ματιών σε βελτιστοποιημένες δυαδικές μορφές για συγκεκριμένο υλικό.
  • Ενσωμάτωση μιας ενοποιημένης μηχανής για θέματα και στυλ, που σας επιτρέπει να επιτύχετε την εμφάνιση εφαρμογών που βασίζονται σε Qt Widgets και Qt Quick, εγγενή σε διαφορετικές πλατφόρμες φορητών υπολογιστών και επιτραπέζιων υπολογιστών.
  • Αποφασίστηκε να χρησιμοποιηθεί το CMake αντί του QMake ως σύστημα κατασκευής. Η υποστήριξη για τη δημιουργία εφαρμογών με χρήση QMake θα παραμείνει, αλλά το ίδιο το Qt θα κατασκευαστεί χρησιμοποιώντας το CMake. Το CMake επιλέχθηκε επειδή αυτή η εργαλειοθήκη χρησιμοποιείται ευρέως μεταξύ των προγραμματιστών έργων C++ και υποστηρίζεται σε πολλά ολοκληρωμένα περιβάλλοντα ανάπτυξης. Ανάπτυξη του συστήματος συναρμολόγησης Qbs, το οποίο υποστήριξε ότι ήταν αντικατάσταση του QMake, επεκτάθηκε κοινότητα.
  • Μετάβαση στο πρότυπο C++17 κατά την ανάπτυξη (προηγουμένως χρησιμοποιήθηκε η C++98). Το Qt 6 σχεδιάζει να εφαρμόσει υποστήριξη για πολλές σύγχρονες λειτουργίες της C++, χωρίς όμως να χάσει τη συμβατότητά του με κώδικα που βασίζεται σε πρότυπα παλαιού τύπου.
  • Η δυνατότητα χρήσης ορισμένων από τις λειτουργίες που προσφέρονται για QML και Qt Quick σε κώδικα C++. Θα παρουσιαστεί ένα νέο σύστημα ιδιοτήτων για το QObject και παρόμοιες κλάσεις. Από την QML, στον πυρήνα Qt θα ενσωματωθεί ένας κινητήρας για εργασία με συνδέσμους, ο οποίος θα μειώσει το φορτίο και την κατανάλωση μνήμης για τα δεσίματα και θα τα καταστήσει διαθέσιμα σε όλα τα μέρη του Qt και όχι μόνο στο Qt Quick.
  • Διευρυμένη υποστήριξη για πρόσθετες γλώσσες όπως Python και WebAssembly.
  • Πηγή: opennet.ru

Προσθέστε ένα σχόλιο