บริษัท Qt ได้เปิดตัวเฟรมเวิร์ก Qt 6.7 ซึ่งเป็นการสานต่อการทำงานเพื่อเพิ่มเสถียรภาพและขยายฟังก์ชันการทำงานของ Qt 6 Qt 6.7 ให้การสนับสนุนแพลตฟอร์มต่างๆ Windows 10+, macOS 12 ปีขึ้นไป, Linux (Ubuntu 22.04, openSUSE 15.5, SUSE 15 SP5, RHEL 8.8/9.2, Debian 11.6), iOS 16 ขึ้นไป, Android Qt รองรับระบบปฏิบัติการ 8+ (API 23+), webOS, WebAssembly, INTEGRITY, VxWorks, FreeRTOS และ QNX โดยซอร์สโค้ดของส่วนประกอบ Qt ได้รับอนุญาตภายใต้ใบอนุญาต LGPLv3 และ GPLv2
การเปลี่ยนแปลงที่สำคัญใน Qt 6.7:
- ปรับปรุงการรองรับโค้ดที่ใช้องค์ประกอบของมาตรฐาน C++20 เพิ่มคลาส Qt::{strong,weak,partial}_ordering ที่มีการใช้งานประเภท std::*_ordering ที่เข้ากันได้กับข้อกำหนด C++17 รวมถึงแมโครที่ขยายไปยังตัวดำเนินการเปรียบเทียบสามทาง "" เมื่อคอมไพล์โดยคอมไพเลอร์ที่รองรับ C++20 (หากคอมไพเลอร์รองรับเฉพาะ C++17 มาโครจะกลับไปใช้ตัวดำเนินการปกติ)
เทมเพลตคลาส std::span ถูกนำมาใช้เพื่อแสดงลำดับของออบเจ็กต์ที่ต่อเนื่องกัน ซึ่งถูกแทนที่ด้วยคลาส QSpan สำหรับระบบ C++17 งานยังคงดำเนินต่อไปในการรองรับไลบรารี std::chrono ใน Qt API ต่างๆ ตัวอย่างเช่น การหมดเวลาใน Qt Network API จะถูกอธิบายโดยใช้ชนิดข้อมูล std::chrono และระบุเป็นค่าตัวอักษร เช่น "5s" เพื่อแสดง 5 วินาที
- การพัฒนาโมดูล Qt Graphs เวอร์ชันทดลอง ซึ่งออกแบบมาเพื่อสร้างกราฟหลากหลายประเภทและแสดงภาพชุดข้อมูลขนาดใหญ่ที่เปลี่ยนแปลงอย่างรวดเร็ว ยังคงดำเนินต่อไป โมดูลนี้กำลังได้รับการพัฒนาเพื่อทดแทนโมดูล Qt DataVisualization รุ่นเก่าที่ใช้ OpenGL และโมดูล Qt Charts โมดูลใหม่นี้ใช้ Qt Quick 3D และเอ็นจิ้นการเรนเดอร์ RHI (Rendering Hardware Interface) ซึ่งรองรับ 3D API ต่างๆ (OpenGL, Vulkan, Metal และ Direct 3D) นอกจากการแสดงภาพ 3 มิติแล้ว เวอร์ชันใหม่นี้ยังเพิ่มการรองรับกราฟวงกลมและกราฟเส้น 2 มิติ รวมถึงกราฟกระจาย มีการผสานรวมกับเครื่องมือแอนิเมชันและเอฟเฟกต์ของ Qt Quick เพิ่มการรองรับธีม สถาปัตยกรรมได้รับการปรับปรุงให้ทันสมัย ช่วยลดจำนวนการจัดสรรหน่วยความจำ

- มีการเพิ่มคลาสใหม่ QHttpHeaders, QNetworkRequestFactory, QRestAccessManager และ QRestReply สำหรับการพัฒนาแอปพลิเคชันไคลเอนต์ที่ใช้ API ที่ใช้ HTTP และสถาปัตยกรรม REST (REpresentational State Transfer)
- โมดูล Qt gRPC ซึ่งอนุญาตให้เข้าถึงบริการ gRPC ได้รับการขยายเพิ่มเติม มีการเพิ่มคลาสใหม่ๆ ลงใน Qt gRPC สำหรับการเรียกแบบไคลเอ็นต์ เซิร์ฟเวอร์ และการเรียกแบบสตรีมมิ่งแบบสองทิศทาง ช่วยให้สามารถแลกเปลี่ยนข้อความพร้อมเปิดใช้งานอัตโนมัติเมื่อค่าเปลี่ยนแปลง มีการเปิดตัว Interceptor API สำหรับการเชื่อมต่อตัวจัดการคอลแบ็กกับข้อความ gRPC ที่เลือก ซึ่งสามารถนำไปใช้สำหรับการบันทึกข้อมูลหรือการแคชข้อมูลได้
- โมดูล Qt Protobuf ซึ่งได้รับการออกแบบมาเพื่อแปลงคลาส Qt เป็นอนุกรมโดยใช้โปรโตคอล Protocol Buffer ได้รับการอัปเดตเพื่อรองรับการแปลงเป็นอนุกรมจาก JSON
- โมดูลกราฟิกเวกเตอร์ Qt SVG ได้รับการอัปเดตเพื่อรองรับองค์ประกอบ SVG 1.1 และ 2.0 ซึ่งมักใช้ในรูปภาพ SVG ในทางปฏิบัติ ( - - - และ ) ซึ่งช่วยให้สามารถแสดงไฟล์ SVG ได้ส่วนใหญ่ สำหรับผู้ที่ต้องการการรองรับ SVG 2.0 อย่างเต็มรูปแบบ ขอแนะนำโมดูล Qt WebEngine มีการเพิ่มยูทิลิตี้ svgtoqml สำหรับการแปลง SVG เป็น QML เพื่อนำเข้ากราฟิกเวกเตอร์เข้าสู่กราฟฉาก Qt Quick โดยตรง โมดูล Qt Quick Shapes ได้รับการปรับปรุงเสถียรภาพสำหรับการเรนเดอร์เส้นโค้งคุณภาพสูงโดยใช้ Fragment Shader
- เพิ่มการรองรับฟอนต์แบบแปรผัน ซึ่งอนุญาตให้ปรับเปลี่ยนน้ำหนักของสัญลักษณ์ ความกว้าง และลักษณะเฉพาะทางอื่นๆ ได้ เพิ่มการรองรับไลบรารีไอคอน เมื่อใช้การเรียกใช้ QIcon::fromTheme ความสามารถในการจับคู่ชื่อไอคอนกับสัญลักษณ์ในไลบรารีไอคอนก็ได้รับการสนับสนุนแล้ว
- มีฟังก์ชันให้ฝังหน้าต่างดั้งเดิมของแพลตฟอร์มปัจจุบันลงในฉาก Qt Quick ซึ่งช่วยให้คุณสามารถใช้ส่วนประกอบอินเทอร์เฟซที่แพลตฟอร์มนั้นๆ จัดเตรียมไว้ในอินเทอร์เฟซที่ใช้ Qt Quick ได้ ตัวอย่างเช่น คุณสามารถฝัง AppKit MapView หรือ Windows เครื่องเล่นสื่อ

- เราได้เพิ่มการรองรับสำหรับการเพิ่มโค้ดเรนเดอร์ลงในแอปพลิเคชันที่ใช้ Qt Quick หรือ Qt Widgets โดยใช้ Qt graphics API ที่รองรับ (Vulkan, OpenGL, Direct3D, Metal) ซึ่งทำได้โดยใช้คลาส QRhiQuickItem และ QRhiWidget
- ให้การสนับสนุนแพลตฟอร์มอย่างเต็มรูปแบบ macOS 14, iOS 17, Windows 11 23 ชม. 2 Android 14, RHEL 9.2, openSUSE 15.5, SUSE Linux Enterprise Server 15 เพิ่มแอสเซมบลีสำหรับ Windowsคอมไพล์โดยใช้ชุดเครื่องมือ MinGW ที่ใช้ LLVM มีการเพิ่มเวอร์ชันสำเร็จรูปสำหรับสถาปัตยกรรม ARM แล้ว (สำหรับ Windows и Linuxสำหรับแพลตฟอร์ม VxWorks 7 และ QNX 7.1
- สแต็ก Boot2Qt ได้รับการอัปเดตแล้ว ช่วยให้สามารถสร้างระบบมือถือที่สามารถบูตได้โดยใช้สภาพแวดล้อมแบบ Qt และ QML สภาพแวดล้อมระบบใน Boot2Qt ได้รับการอัปเดตเพื่อรองรับแพลตฟอร์ม Yocto 4.3
- มีการเพิ่มแอปพลิเคชันตัวอย่างใหม่ ตัวอย่าง Lightning Viewer ใช้ Qt Location และ Qt Quick Controls เพื่อแสดงข้อมูลพายุฝนฟ้าคะนองบนแผนที่ เดโม OSM Buildings ใหม่ใช้ Qt Quick 3D, Qt Positioning และ Qt Network เพื่อสร้างแผนที่อาคาร 3 มิติโดยอิงจากข้อมูล OpenStreetMap ตัวอย่าง Virtual Assistant สาธิตความสามารถในการสร้างแอนิเมชัน 3 มิติ ตัวอย่างการเรนเดอร์แบบ Volumetric สาธิตวิธีการใช้พื้นผิว 3 มิติใน Qt Quick 3D สำหรับการติดตามรังสีแบบ Volumetric ตัวอย่าง StocQt ซึ่งใช้ Qt Graphs เพื่อแสดงราคาหุ้น ได้รับการเขียนขึ้นใหม่ทั้งหมด

นอกจากนี้ ยังควรทราบถึงการเปิดตัว Qt Creator 13.0 ซึ่งเป็นสภาพแวดล้อมการพัฒนาแบบบูรณาการสำหรับการสร้างแอปพลิเคชันข้ามแพลตฟอร์มโดยใช้ไลบรารี Qt โดยรองรับทั้งการพัฒนาโปรแกรม C++ แบบคลาสสิกและการใช้ QML ซึ่งเป็นภาษาที่ใช้ JavaScript ในการกำหนดสคริปต์ และบล็อกคล้าย CSS ในการกำหนดโครงสร้างและพารามิเตอร์ขององค์ประกอบอินเทอร์เฟซ มีเวอร์ชันพร้อมใช้งานให้ใช้งานได้แล้ว Linux, Windows และ macOS
ในเวอร์ชันใหม่:
- เพิ่มตัวติดตั้งแบบออฟไลน์และออนไลน์สำหรับระบบ ARM พร้อม Linux.
- อินเทอร์เฟซยินดีต้อนรับสู่ Qt Creator ได้รับการอัปเดตเพื่อรองรับธีมทั้งแบบสีเข้มและสีอ่อน

- อินเทอร์เฟซสำหรับการย้ายแผงในโหมดดีบักและ Widget Designer ได้รับการปรับปรุงแล้ว เพิ่มการรองรับการยุบแผงแนวตั้งชั่วคราว ขณะนี้สามารถย้ายแผงได้อย่างอิสระตามชื่อโดยไม่ต้องปิดการเชื่อมต่อก่อน

- เพิ่มการสนับสนุนสำหรับการสร้าง การปรับใช้ การรัน และการดีบักแอปพลิเคชันสำหรับอุปกรณ์ที่ใช้ Qt Application Manager (สำหรับแอปพลิเคชันที่ใช้ Qt 6 และ CMake)
- เพิ่มการรองรับบางส่วนสำหรับ iOS 17
- ไดเรกทอรี build เริ่มต้นได้รับการเปลี่ยนแปลงแล้ว โดยตอนนี้ใช้ไดเรกทอรีย่อย "build" ในโค้ดโปรเจ็กต์ คุณสามารถเปลี่ยนไดเรกทอรี build ได้โดยใช้การตั้งค่า "Preferences > Build & Run > Default Build Properties > Default build directory"
- มีการเพิ่มส่วน "เป้าหมายที่หายไป" ในโหมดโครงการ ซึ่งจะแสดงชุดอุปกรณ์ (การผูกกับเครื่องมือสร้างและเวอร์ชัน Qt ที่แตกต่างกัน) ที่ไม่มีให้ใช้ได้อีกต่อไป และให้ตัวเลือกในการสร้างทดแทนหรือใช้ชุดอุปกรณ์ที่มีอยู่ชุดอื่นเมื่อสร้าง ปรับใช้ และรัน
- ความสามารถในการสร้างชุดสำหรับโครงการ Python ได้รับการจัดเตรียมไว้แล้ว (เพื่อเลือกเวอร์ชันอื่นของอินเทอร์พรีเตอร์)
- เพิ่มความสามารถในการใช้งาน เซิร์ฟเวอร์ LSP (Language Server Protocol) สำหรับ YAML, JSON และ Bash
- ตัวแก้ไขโค้ดให้การสนับสนุนสำหรับการนำทางจากส่วนประกอบ QML ไปยังโค้ด C++ ที่เกี่ยวข้อง
- การตั้งค่า ClangFormat ได้รับการจัดระเบียบใหม่แล้ว ขณะนี้มีโปรแกรมแก้ไขข้อความพร้อมการตรวจสอบไวยากรณ์สำหรับปรับแต่งการตั้งค่าของคุณแล้ว

ที่มา: opennet.ru






