หลังจากหกเดือนของการพัฒนา มีการเผยแพร่ชุดเครื่องมือหลายแพลตฟอร์มสำหรับการสร้างส่วนต่อประสานผู้ใช้แบบกราฟิก - GTK 4.10.0 GTK 4 กำลังได้รับการพัฒนาโดยเป็นส่วนหนึ่งของกระบวนการพัฒนาใหม่ที่พยายามให้นักพัฒนาแอปพลิเคชันมี API ที่เสถียรและได้รับการสนับสนุนเป็นเวลาหลายปี ซึ่งสามารถใช้งานได้โดยไม่ต้องกลัวว่าจะต้องเขียนแอปพลิเคชันใหม่ทุกๆ หกเดือนเนื่องจากการเปลี่ยนแปลง API ใน GTK ถัดไป สาขา.
การปรับปรุงที่โดดเด่นที่สุดใน GTK 4.10 ได้แก่:
- วิดเจ็ต GtkFileChooserWidget ซึ่งใช้กล่องโต้ตอบที่เปิดขึ้นเพื่อเลือกไฟล์ในแอปพลิเคชัน ใช้โหมดสำหรับการนำเสนอเนื้อหาไดเรกทอรีในรูปแบบของเครือข่ายของไอคอน ตามค่าเริ่มต้น มุมมองแบบคลาสสิกในรูปแบบของรายการไฟล์จะยังคงใช้อยู่ และปุ่มแยกต่างหากจะปรากฏที่ด้านขวาของแผงเพื่อสลับไปที่โหมดไอคอน ไอคอน:
- มีการเพิ่มคลาสใหม่ GtkColorDialog, GtkFontDialog, GtkFileDialog และ GtkAlertDialog พร้อมกับการใช้กล่องโต้ตอบสำหรับการเลือกสี แบบอักษร และไฟล์ และการแสดงคำเตือน ตัวเลือกใหม่มีความโดดเด่นด้วยการเปลี่ยนไปใช้ API แบบองค์รวมและสมดุลมากขึ้นซึ่งทำงานในโหมดอะซิงโครนัส (GIO async) ในกล่องโต้ตอบใหม่ เมื่อใดก็ตามที่เป็นไปได้และพร้อมใช้งาน พอร์ทัล Freedesktop (xdg-desktop-portal) จะถูกนำมาใช้ ซึ่งใช้เพื่อจัดระเบียบการเข้าถึงทรัพยากรของสภาพแวดล้อมผู้ใช้จากแอปพลิเคชันที่แยกออกมา
- มีการเพิ่ม CPDB ใหม่ (Common Printing Dialog Backend) เพื่อให้มีตัวจัดการมาตรฐานสำหรับใช้ในกล่องโต้ตอบการพิมพ์ แบ็กเอนด์การพิมพ์ lpr ที่ใช้ก่อนหน้านี้ถูกยกเลิกแล้ว
- ไลบรารี GDK ซึ่งมีเลเยอร์ระหว่าง GTK และระบบย่อยกราฟิก มีโครงสร้าง GdkTextureDownloader ซึ่งใช้ในการโหลดพื้นผิวในคลาส GdkTexture และสามารถใช้เพื่อแปลงรูปแบบต่างๆ ปรับปรุงการปรับขนาดพื้นผิวโดยใช้ OpenGL
- ไลบรารี GSK (GTK Scene Kit) ซึ่งให้ความสามารถในการเรนเดอร์ฉากกราฟิกผ่าน OpenGL และ Vulkan รองรับโหนดที่มีมาสก์และการกรองแบบกำหนดเองของพื้นผิวที่ปรับขนาดได้
- มีการรองรับส่วนขยายโปรโตคอล Wayland เวอร์ชันใหม่แล้ว ผลลัพธ์ของการแจ้งเตือนการเริ่มต้นเมื่อใช้โปรโตคอล "xdg-activation" ได้รับการปรับแล้ว แก้ไขปัญหาเกี่ยวกับขนาดเคอร์เซอร์บนหน้าจอความหนาแน่นของพิกเซลสูง
- คลาส GtkMountOperation ได้รับการปรับให้ทำงานในสภาพแวดล้อมที่ไม่ใช่ X11
- แบ็กเอนด์บรอดเวย์ซึ่งช่วยให้คุณสามารถเรนเดอร์เอาต์พุตไลบรารี GTK ในหน้าต่างเว็บเบราว์เซอร์ได้เพิ่มการรองรับสำหรับหน้าต่างโมดอล
- คลาส GtkFileLauncher นำเสนอ API แบบอะซิงโครนัสใหม่เพื่อแทนที่ gtk_show_uri
- ยูทิลิตี gtk-builder-tool ได้ปรับปรุงการประมวลผลเทมเพลต
- วิดเจ็ต GtkSearchEntry ได้เพิ่มการรองรับข้อความตัวเติม ซึ่งแสดงเมื่อฟิลด์ว่างเปล่าและไม่มีโฟกัสอินพุต
- เพิ่มคลาส GtkUriLauncher ซึ่งแทนที่ฟังก์ชัน gtk_show_uri ซึ่งใช้เพื่อกำหนดแอปพลิเคชันที่เรียกใช้เพื่อแสดง URI ที่กำหนด หรือส่งข้อผิดพลาดหากไม่มีตัวจัดการ
- คลาส GtkStringSorter ได้เพิ่มการรองรับเมธอด "การจัดเรียง" ต่างๆ ทำให้คุณสามารถดำเนินการจับคู่และเรียงลำดับตามความหมายของอักขระได้ (เช่น เมื่อมีเครื่องหมายเน้นเสียง)
- API และวิดเจ็ตส่วนใหญ่เลิกใช้แล้ว ซึ่งตัดสินใจว่าจะไม่รองรับในสาขา GTK5 ในอนาคต และถูกแทนที่ด้วยอะนาล็อกที่ทำงานในโหมดอะซิงโครนัส:
- GtkDialog (ควรใช้ GtkWindow)
- GtkTreeView (ควรใช้ GtkListView และ GtkColumnView)
- GtkIconView (ควรใช้ GtkGridView)
- GtkComboBox (ควรใช้ GtkDropDown)
- GtkAppChooser (ควรใช้ GtkDropDown)
- GtkMessageDialog (ควรใช้ GtkAlertDialog)
- GtkColorChooser (ควรใช้ GtkColorDialog และ GtkColorDialogButton)
- GtkFontChooser (ควรใช้ GtkFontDialog และ GtkFontDialogButton)
- GtkFileChooser (ควรใช้ GtkFileDialog)
- GtkInfoBar
- GtkEntry เสร็จสมบูรณ์
- GtkStyleContext
- GtkVolumeButton
- GtkStatusbar
- GtkAssistant
- GtkLockButton
- gtk_widget_show/ซ่อน
- gtk_show_uri
- gtk_render_ และ gtk_snapshot_render_
- gtk_gesture_set_sequence_state
- อินเทอร์เฟซ GtkAccessible ถูกโอนไปยังหมวดหมู่สาธารณะ ซึ่งช่วยให้คุณเชื่อมต่อตัวจัดการองค์ประกอบอินเทอร์เฟซของบุคคลที่สามสำหรับคนพิการได้ เพิ่มอินเทอร์เฟซ GtkAccessibleRange
- แพลตฟอร์ม macOS ให้การสนับสนุนการลากองค์ประกอบด้วยเมาส์ (DND, Drag-and-Drop)
- บนแพลตฟอร์ม Windows มีการปรับปรุงการทำงานร่วมกับการตั้งค่าระบบ
- รูปแบบเอาต์พุตการแก้ไขจุดบกพร่องได้รับการรวมเป็นหนึ่งเดียว
- ขีดจำกัดหน่วยความจำสำหรับผู้อัปโหลดรูปภาพ JPEG เพิ่มขึ้นเป็น 1 GB
ที่มา: opennet.ru