การเปิดตัวชุดเครื่องมือกราฟิก wxWidgets 3.2.0

9 ปีหลังจากการเปิดตัวสาขา 3.0 ได้มีการเปิดตัวชุดเครื่องมือข้ามแพลตฟอร์ม wxWidgets 3.2.0 สาขาแรกที่เสถียรใหม่ ซึ่งช่วยให้คุณสร้างอินเทอร์เฟซแบบกราฟิกสำหรับ Linux, Windows, macOS, UNIX และแพลตฟอร์มมือถือ เมื่อเปรียบเทียบกับสาขา 3.0 มีความไม่เข้ากันหลายประการในระดับ API ชุดเครื่องมือนี้เขียนด้วยภาษา C++ และเผยแพร่ภายใต้ลิขสิทธิ์ไลบรารี wxWindows ฟรี ซึ่งได้รับการอนุมัติโดย Open Source Foundation และองค์กร OSI ใบอนุญาตนี้อิงตาม LGPL และมีความโดดเด่นด้วยการอนุญาตให้ใช้เงื่อนไขของตนเองในการเผยแพร่ผลงานลอกเลียนแบบในรูปแบบไบนารี

นอกเหนือจากการพัฒนาโปรแกรมด้วย C++ แล้ว wxWidgets ยังมีการเชื่อมโยงสำหรับภาษาโปรแกรมยอดนิยมส่วนใหญ่ รวมถึง PHP, Python, Perl และ Ruby ไม่เหมือนกับชุดเครื่องมืออื่นๆ wxWidgets มอบแอปพลิเคชันที่มีรูปลักษณ์ดั้งเดิมอย่างแท้จริงสำหรับระบบเป้าหมายโดยใช้ API ของระบบแทนที่จะเลียนแบบ GUI

นวัตกรรมหลัก:

  • พอร์ตทดลองใหม่ของ wxQt ได้ถูกนำมาใช้แล้ว ทำให้ wxWidgets ทำงานบนกรอบงาน Qt ได้
  • พอร์ต wxGTK ให้การสนับสนุนอย่างเต็มที่สำหรับโปรโตคอล Wayland
  • เพิ่มการรองรับหน้าจอที่มีความหนาแน่นของพิกเซลสูง (High DPI) เพิ่มความสามารถในการกำหนด DPI ที่แตกต่างกันสำหรับจอภาพที่แตกต่างกันและเปลี่ยน DPI แบบไดนามิก มีการเสนอ wxBitmapBundle API ใหม่ ซึ่งช่วยให้คุณสามารถจัดการรูปภาพบิตแมปหลายเวอร์ชันซึ่งนำเสนอด้วยความละเอียดที่แตกต่างกันโดยรวมได้
  • มีการเสนอระบบการสร้างใหม่ที่ใช้ CMake มีการเพิ่มการรองรับคอมไพเลอร์ใหม่ (รวมถึง MSVS 2022, g++ 12 และ clang 14) และระบบปฏิบัติการในระบบแอสเซมบลี
  • การรองรับ OpenGL ได้รับการออกแบบใหม่ การใช้ OpenGL เวอร์ชันใหม่ (3.2+) ได้รับการปรับปรุง
  • เพิ่มการรองรับการบีบอัด LZMA และไฟล์ ZIP 64
  • การป้องกันเวลาคอมไพล์ได้รับการปรับปรุงด้วยความสามารถในการปิดใช้งานการแปลงโดยปริยายที่เป็นอันตรายระหว่างสตริงของประเภท wxString และ “char*”
  • เพิ่มการสนับสนุนกิจกรรมสำหรับท่าทางควบคุมที่เล่นโดยใช้เมาส์
  • ขณะนี้คลาส wxFont และ wxGraphicsContext มีความสามารถในการระบุค่าที่ไม่ใช่จำนวนเต็มเมื่อกำหนดขนาดตัวอักษรและความกว้างของปากกา
  • คลาส wxStaticBox ใช้ความสามารถในการกำหนดป้ายกำกับให้กับ windows
  • ขณะนี้ wxWebRequest API รองรับ HTTPS และ HTTP/2 แล้ว
  • คลาส wxGrid ได้เพิ่มการสนับสนุนสำหรับการแช่แข็งคอลัมน์และแถว
  • คลาสใหม่ที่แนะนำ: wxActivityIndicator, wxAddRemoveCtrl, wxAppProgressIndicator, wxBitmapBundle, wxNativeWindow, wxPersistentComboBox, wxPowerResourceBlocker, wxSecretStore, wxTempFFile และ wxUILocale
  • ตัวจัดการ XRC ใหม่ได้ถูกนำไปใช้กับคลาสใหม่ทั้งหมดและบางคลาสที่มีอยู่
  • แนะนำวิธีการใหม่: wxDataViewToggleRenderer::ShowAsRadio(), wxDateTime::GetWeekBasedYear(), wxDisplay::GetPPI(), wxGrid::SetCornerLabelValue(), wxHtmlEasyPrinting::SetPromptMode(), wxJoystickEvent::GetButtonOrdinal(), wxListBox::Get TopItem (), wxProcess::Activate(), wxTextEntry::ForceUpper(), wxStandardPaths::GetUserDir(), wxToolbook::EnablePage(), wxUIActionSimulator::Select()
  • มีการปรับปรุงที่สำคัญกับคลาส wxBusyInfo, wxDataViewCtrl, wxNotificationMessage, wxStaticBox, wxStyledTextCtrl และ wxUIActionSimulator
  • การรองรับแพลตฟอร์ม macOS ได้รับการปรับปรุง รวมถึงความสามารถในการใช้ธีมสีเข้มและเพิ่มการรองรับสำหรับอุปกรณ์ที่ใช้โปรเซสเซอร์ ARM
  • มีการปรับปรุงเพื่อรองรับมาตรฐาน C++11 เพิ่มการสนับสนุนสำหรับการสร้างด้วยคอมไพเลอร์ C++20
  • ไลบรารีบุคคลที่สามที่รวมอยู่ทั้งหมดได้รับการอัปเดตแล้ว เพิ่มการรองรับ WebKit 2 และ GStreamer 1.7

ที่มา: opennet.ru

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