การเปิดตัว Qt 5.15 framework

แนะนำ การเปิดตัวกรอบการทำงานข้ามแพลตฟอร์ม Qt 5.15. ซอร์สโค้ดสำหรับส่วนประกอบ Qt มีให้ภายใต้ใบอนุญาต LGPLv3 และ GPLv2 สาขาใหม่ของ Qt 6 จะเปิดตัวในเดือนธันวาคม ซึ่ง ที่คาดหวัง การเปลี่ยนแปลงทางสถาปัตยกรรมที่สำคัญ เพื่อให้การเปลี่ยนไปใช้สาขา Qt 6 ในอนาคตราบรื่นขึ้น Qt 5.15 ได้รวมการใช้งานตัวอย่างคุณสมบัติใหม่บางอย่าง และเพิ่มคำเตือนเกี่ยวกับการเลิกใช้งานฟังก์ชันการทำงานที่ใกล้จะเกิดขึ้นซึ่งมีกำหนดการลบออกใน Qt 6

Qt 5.15 จัดเป็นรุ่น Long Term Support (LTS) ขณะเดียวกันสำหรับชุมชนอัปเดตเป็นสาขา 5.15 จะถูกเผยแพร่ จนกระทั่งเกิดประเด็นสำคัญต่อไปเท่านั้นคือ ประมาณหกเดือน วงจร LTS ที่ขยายออกไปซึ่งเกี่ยวข้องกับการสร้างการอัปเดตในช่วงระยะเวลาสามปีจะถูกจำกัดไว้สำหรับผู้ใช้ที่มีใบอนุญาตเชิงพาณิชย์ ($5508 ต่อปีต่อนักพัฒนาสำหรับบริษัททั่วไป และ $499 ต่อปีสำหรับสตาร์ทอัพและธุรกิจขนาดเล็ก) บริษัทคิวทีก็เช่นกัน ที่พิจารณา ความสามารถในการเปลี่ยนไปใช้รูปแบบการจัดจำหน่าย Qt ซึ่งการเผยแพร่ทั้งหมดในช่วง 12 เดือนแรกจะเผยแพร่ให้กับผู้ใช้ใบอนุญาตเชิงพาณิชย์เท่านั้น แต่จนถึงขณะนี้แนวคิดนี้ยังไม่ได้ไปไกลเกินกว่าการสนทนา

หลัก นวัตกรรมใน Qt 5.15:

  • ทำงานอย่างต่อเนื่องในการสร้าง API กราฟิกที่เป็นนามธรรมซึ่งไม่ได้ขึ้นอยู่กับ 3D API ของระบบปฏิบัติการ องค์ประกอบสำคัญของกลุ่มกราฟิก Qt ใหม่คือกลไกการเรนเดอร์ฉาก ซึ่งใช้เลเยอร์ RHI (Rendering Hardware Interface) เพื่อขับเคลื่อนแอปพลิเคชัน Qt Quick ไม่เพียงแต่กับ OpenGL เท่านั้น แต่ยังรวมถึง Vulkan, Metal และ Direct 3D APIs ด้วย ใน 5.15 สแต็คกราฟิกใหม่จะนำเสนอในรูปแบบของตัวเลือกที่มีสถานะเป็น "ตัวอย่างเทคโนโลยี"
  • มีการสนับสนุนโมดูลเต็มรูปแบบ Qt ด่วน 3Dซึ่งสัญญาณของการพัฒนาเชิงทดลองได้ถูกลบออกไปแล้ว Qt Quick 3D มอบ API แบบครบวงจรสำหรับการสร้างอินเทอร์เฟซผู้ใช้โดยใช้ Qt Quick ที่รวมองค์ประกอบกราฟิก 2D และ 3D API ใหม่ช่วยให้คุณใช้ QML เพื่อกำหนดองค์ประกอบอินเทอร์เฟซ 3D โดยไม่ต้องใช้รูปแบบ UIP ใน Qt Quick 3D คุณสามารถใช้หนึ่งรันไทม์ (Qt Quick) หนึ่งเค้าโครงฉากและหนึ่งเฟรมเวิร์กแอนิเมชั่นสำหรับ 2D และ 3D และใช้ Qt Design Studio สำหรับการพัฒนาอินเทอร์เฟซภาพ โมดูลนี้แก้ปัญหาต่างๆ เช่น โอเวอร์เฮดขนาดใหญ่เมื่อรวม QML เข้ากับเนื้อหาจาก Qt 3D หรือ 3D Studio และให้ความสามารถในการซิงโครไนซ์ภาพเคลื่อนไหวและการแปลงในระดับเฟรมระหว่าง 2D และ 3D

    คุณสมบัติใหม่ที่เพิ่มเข้ามาใน Qt Quick 3D ได้แก่ การรองรับเอฟเฟกต์หลังการประมวลผล, C++ API สำหรับการจัดการเรขาคณิต, API การหมุนตามคลาส QQuaternion และการรองรับไฟจุด เพื่อประเมินคุณสมบัติต่างๆ ของ Qt Quick 3D เตรียมไว้ แอปพลิเคชันสาธิตพิเศษที่แสดงวิธีที่คุณสามารถเปลี่ยนประเภทและแหล่งที่มาของแสง ใช้โมเดลที่ซับซ้อน จัดการพื้นผิว วัสดุ และการลดรอยหยัก พร้อมกัน เสนอ ปัญหา สิ่งแวดล้อม เพื่อออกแบบอินเทอร์เฟซผู้ใช้ของ Qt Design Studio 1.5 ซึ่งให้การสนับสนุน Qt Quick 3D อย่างเต็มรูปแบบ


  • ใน Qt QML งานคือ เข้มข้น เพื่อเตรียมพร้อมสำหรับ Qt 6 มีการใช้ความสามารถในการใช้คุณสมบัติที่มีแอตทริบิวต์ 'required' ในส่วนประกอบ ซึ่งจำเป็นต้องมีการติดตั้ง ยูทิลิตี้ qmllint ได้ปรับปรุงการสร้างคำเตือนเกี่ยวกับปัญหาที่อาจเกิดขึ้นในโค้ด QML เพิ่มยูทิลิตี้ qmlformat ซึ่งทำให้ง่ายต่อการจัดรูปแบบโค้ด QML ตามหลักเกณฑ์สไตล์การเขียนโค้ด รับประกันความเข้ากันได้ของ QML กับรุ่น Qt สำหรับ ไมโครคอนโทรลเลอร์.
  • ใน Qt Quick มีการเพิ่มการรองรับปริภูมิสีให้กับองค์ประกอบรูปภาพ มีการเพิ่มองค์ประกอบ PathText ใหม่ลงใน Qt Quick Shapes
    มีการเพิ่มคุณสมบัติ cursorShape ให้กับตัวจัดการพอยน์เตอร์ ซึ่งคุณสามารถเปลี่ยนรูปร่างของเคอร์เซอร์เมาส์บนระบบเดสก์ท็อปได้ เพิ่มองค์ประกอบ HeaderView เพื่อให้ง่ายต่อการเพิ่มส่วนหัวแนวตั้งและแนวนอนลงในตารางที่ใช้ TableView

  • การสนับสนุนการตกแต่งหน้าต่างฝั่งไคลเอ็นต์ (CSD) ได้รับการปรับปรุงอย่างมาก ช่วยให้แอปพลิเคชันสามารถกำหนดการตกแต่งหน้าต่างของตัวเอง และวางเนื้อหาแบบกำหนดเองในแถบชื่อเรื่องของหน้าต่าง
  • โมดูลมีเสถียรภาพ คิวท์ ลอตตี้ซึ่งมี QML API ขั้นสูงที่ช่วยให้คุณสามารถเรนเดอร์กราฟิกและภาพเคลื่อนไหวที่ส่งออกในรูปแบบ JSON โดยใช้ปลั๊กอิน Bodymovin สำหรับ Adobe After Effects ขอบคุณ QtLottie นักออกแบบสามารถเตรียมเอฟเฟกต์ภาพเคลื่อนไหวในแอปพลิเคชันที่สะดวก และนักพัฒนาสามารถเชื่อมต่อไฟล์ที่ส่งออกไปยังอินเทอร์เฟซแอปพลิเคชันบน QtQuick ได้โดยตรง QtLottie มีไมโครเอ็นจิ้นในตัวสำหรับการแสดงแอนิเมชั่น การครอบตัด การแบ่งเลเยอร์ และเอฟเฟกต์อื่น ๆ กลไกสามารถเข้าถึงได้ผ่านองค์ประกอบ LottieAnimation QML ซึ่งสามารถควบคุมได้จากโค้ด QML ในลักษณะเดียวกับองค์ประกอบ QtQuick อื่นๆ
  • เอ็นจิ้นเบราว์เซอร์ Qt WebEngine ได้รับการอัพเดตเป็นฐานโค้ด โครเมียม 80 (ในสาขา 5.14 Chromium 77 ถูกใช้ เวอร์ชั่นปัจจุบันคือ โครเมียม 83).
  • โมดูล Qt 3D มีการปรับปรุงเครื่องมือสร้างโปรไฟล์และการดีบัก
  • Qt Multimedia ได้เพิ่มการรองรับการเรนเดอร์หลายพื้นผิว
  • ใน Qt GUI การดำเนินการปรับขนาดรูปภาพและการแปลงเป็นแบบมัลติเธรดในหลายกรณี
  • Qt Network ได้เพิ่มการรองรับการหมดเวลาแบบกำหนดเองและ ทางลัดเซสชัน ใน TLS 1.3 (Session Ticket ช่วยให้คุณสามารถดำเนินการเซสชันต่อได้โดยไม่ต้องบันทึกสถานะทางฝั่งเซิร์ฟเวอร์)
  • เปิดใช้งาน Qt Core, QRunnable และ QThreadPool เพื่อทำงานกับ std::function เพิ่มวิธีการใหม่ QFile::moveToTrash() สำหรับการย้ายรายการลงถังขยะ โดยคำนึงถึงลักษณะเฉพาะของแพลตฟอร์มต่างๆ
  • ใน Qt สำหรับ Android เพิ่ม รองรับกล่องโต้ตอบดั้งเดิมสำหรับการเปิดและบันทึกไฟล์

ที่มา: opennet.ru

เพิ่มความคิดเห็น