Πρόσφατα ανακοινώθηκε η πρώτη έκδοση ενός νέου σταθερού κλάδου του cross-platform toolkit wxWidgets 3.2.0 , το οποίο επιτρέπει τη δημιουργία γραφικών διεπαφών για Linux, Windows, macOS, UNIX και κινητές πλατφόρμες.
Σε σύγκριση με τον κλάδο 3.0, υπάρχουν αρκετές ασυμβατότητες σε επίπεδο API. Σε αντίθεση με άλλα κιτ εργαλείων, το wxWidgets παρέχει μια πραγματικά εγγενή εφαρμογή για το σύστημα-στόχο, χρησιμοποιώντας API συστήματος αντί για προσομοίωση ενός GUI.
Το wxWidgets περιγράφεται καλύτερα ως ένα εγγενές σύνολο εργαλείων επειδή παρέχει ένα λεπτό επίπεδο αφαίρεσης στα εγγενή στοιχεία ελέγχου μιας πλατφόρμας, σε αντίθεση με την εξομοίωση στοιχείων ελέγχου χρησιμοποιώντας πρωτόγονα γραφικά. Η χρήση εγγενών στοιχείων ελέγχου σε υπάρχουσες πλατφόρμες μας επιτρέπει να επιτύχουμε περισσότερα εγγενή οπτικά αποτελέσματα για τη γραφική διεπαφή σε σχέση με άλλες βιβλιοθήκες όπως το Swing (για Java), εκτός από την προσφορά καλύτερης απόδοσης και άλλων πλεονεκτημάτων.
Το wxWidgets δεν περιορίζεται μόνο στην ανάπτυξη γραφικών διεπαφών, διότι η βιβλιοθήκη διαθέτει ένα επίπεδο επικοινωνίας μεταξύ διεργασιών, λειτουργιών για το δίκτυο όπως πρίζες και πολλά άλλα.
Κύρια νέα χαρακτηριστικά του wxWidgets 3.2.0
Αυτή η νέα έκδοση υπογραμμίζει την υλοποίηση μιας νέας πειραματικής θύρας του wxQt , η οποία επιτρέπει στα wxWidgets να εκτελούνται στο πλαίσιο Qt, ενώ η θύρα wxGTK παρέχει πλήρη υποστήριξη για το πρωτόκολλο Wayland.
Επιπλέον, επισημαίνεται ότι έχει προστεθεί υποστήριξη για οθόνες υψηλής πυκνότητας pixel (High DPI), καθώς και η δυνατότητα αντιστοίχισης διαφορετικών ρυθμίσεων DPI σε διαφορετικές οθόνες και δυναμικής αλλαγής των ρυθμίσεων DPI. Επιπλέον, έχει προταθεί ένα νέο wxBitmapBundle API που σας επιτρέπει να χειρίζεστε διάφορες επιλογές bitmap που παρουσιάζονται σε διαφορετικές αναλύσεις μαζί.
Μια άλλη αξιοσημείωτη αλλαγή είναι η εισαγωγή ενός νέου συστήματος δημιουργίας που βασίζεται στο CMake και προσθέτει υποστήριξη για νέους μεταγλωττιστές (συμπεριλαμβανομένων των MSVS 2022, g++12 και clang14) και λειτουργικά συστήματα για το σύστημα δημιουργίας.
Αξιοσημείωτη είναι επίσης η ανανεωμένη συμβατότητα με το OpenGL , η βελτιωμένη χρήση των νεότερων εκδόσεων του OpenGL (3.2+) και η πρόσθετη υποστήριξη για συμπίεση LZMA και αρχεία ZIP 64-bit.
Από την άλλη πλευρά, υπογραμμίζει επίσης τη βελτιωμένη ασφάλεια χρόνου μεταγλώττισης με τη δυνατότητα απενεργοποίησης επικίνδυνων σιωπηρών μετατροπών μεταξύ συμβολοσειρών τύπων wxString και "char*" και πρόσθετη υποστήριξη για συμβάντα για τον έλεγχο των χειρονομιών που παίζονται με το ποντίκι.
Οι κλάσεις wxFont και wxGraphicsContext επιτρέπουν πλέον τον καθορισμό μη ακεραίων τιμών κατά τον προσδιορισμό του μεγέθους της γραμματοσειράς και του πλάτους της γραφίδας. Η κλάση wxStaticBox εφαρμόζει τη δυνατότητα ανάθεσης αυθαίρετων ετικετών σε παράθυρα.
Άλλες αξιοσημείωτες αλλαγές περιλαμβάνουν:
- Η υποστήριξη για HTTPS και HTTP/2 έχει προστεθεί στο wxWebRequest API.
- Προστέθηκε υποστήριξη για πάγωμα στηλών και γραμμών στην κλάση wxGrid.
- Βελτιωμένη υποστήριξη για την πλατφόρμα macOS, συμπεριλαμβανομένης της δυνατότητας χρήσης σκούρου θέματος και πρόσθετης υποστήριξης για συσκευές που βασίζονται σε επεξεργαστές ARM.
- Έχουν γίνει βελτιώσεις για την υποστήριξη του προτύπου C++11. Προστέθηκε υποστήριξη για συναρμολόγηση από μεταγλωττιστές C++20.
- Όλες οι περιλαμβανόμενες βιβλιοθήκες τρίτων έχουν ενημερωθεί. Προστέθηκε υποστήριξη για WebKit 2 και GStreamer 1.7.
Τέλος, αν ενδιαφέρεστε να μάθετε περισσότερα, μπορείτε να βρείτε τις λεπτομέρειες ακολουθώντας αυτόν τον σύνδεσμο.
Λήψη wxWidgets
Για όσους ενδιαφέρονται να λάβουν και να εγκαταστήσουν αυτό το κιτ εργαλείων, μπορούν να λάβουν τα πακέτα για το λειτουργικό σύστημα προορισμού (Windows, Mac ή Linux) από τον επίσημο ιστότοπο στην ενότητα λήψης
Στην περίπτωση εκείνων που χρησιμοποιούν το Debian, το Ubuntu ή κάποιο παράγωγο αυτών, μπορούν να μεταγλωττίσουν πληκτρολογώντας τα παρακάτω στο τερματικό.
sudo apt-get install libgtk-3-dev build-essential checkinstall
Προχώρησαν στην αποσυμπίεση του πακέτου που κατέβασαν από τον επίσημο ιστότοπο και εισέρχονται στον φάκελο που προκύπτει. Εδώ μπορούν να ανοίξουν ένα τερματικό που βρίσκεται στη διαδρομή του φακέλου ή να τοποθετηθούν μέσα στο φάκελο στο τερματικό.
Και προχωρούμε στη μεταγλώττιση με:
mkdir gtk-build
cd gtk-build/
../configure --disable-shared --enable-unicode
make