กลับไปหน้าบทความ

อ่าน 22 นาที

Qt (ซอฟต์แวร์)

Qt ( /ˈkjuːt/ออกเสียงว่า "cute" ) เป็นเฟรมเวิร์กการพัฒนาแอปพลิเคชันข้ามแพลตฟอร์มสำหรับการสร้างอินเทอร์เฟซผู้ใช้แบบกราฟิกรวมถึง แอปพลิ...

Qt (ซอฟต์แวร์)

คิวที
ผู้เขียนต้นฉบับฮาวาร์ด นอร์ด และ เอริค ชอมเบอิง[ 1 ]
นักพัฒนา
ปล่อย20 พฤษภาคม 2538 [ 1 ] ( 20 พฤษภาคม 1995 )
เวอร์ชันเสถียร
6.11.1 [ 2 ] แก้ไขข้อมูลนี้บนวิกิดาต้า / 13 พฤษภาคม 2026 ( 13 พฤษภาคม 2569 )
เขียนเป็นซี++ ( ซี++17 )
ระบบปฏิบัติการAndroid , Genode/Sculpt , Haiku , iOS , Linux ( embedded , Wayland , X11 ), macOS , Microsoft Windows , WebAssembly , ... [ 3 ]
แพลตฟอร์มข้ามแพลตฟอร์ม
พิมพ์ซอฟต์แวร์ข้ามแพลตฟอร์มและเครื่องมือพัฒนาซอฟต์แวร์
ใบอนุญาต
เว็บไซต์www.qt.io
ที่เก็บข้อมูล
  • รหัส.qt .io /cgit /qt /qtbase .git /

Qt ( /ˈkjuːt/ออกเสียงว่า "cute" [ 7 ] [ 8 ] ) เป็นเฟรมเวิร์กการพัฒนาแอปพลิเคชันข้ามแพลตฟอร์มสำหรับการสร้างอินเทอร์เฟซผู้ใช้แบบกราฟิกรวมถึง แอปพลิ เคชันข้ามแพลตฟอร์มที่ทำงานบนแพลตฟอร์มซอฟต์แวร์และฮาร์ดแวร์ต่างๆ เช่นLinux , Windows , macOS , Androidหรือระบบฝังตัวโดยมีการเปลี่ยนแปลงโค้ดเบสพื้นฐานเพียงเล็กน้อยหรือไม่เปลี่ยนแปลงเลย ในขณะที่ยังคงเป็นแอปพลิเคชันดั้งเดิมที่มีความสามารถและความเร็วแบบดั้งเดิม

ปัจจุบัน Qt กำลังได้รับการพัฒนาโดยThe Qt Companyซึ่งเป็นบริษัทมหาชน และQt Projectภายใต้การกำกับดูแลแบบโอเพนซอร์สโดยมีนักพัฒนารายบุคคลและองค์กรต่างๆ ร่วมกันพัฒนา Qt [ 9 ] [ 10 ] [ 11 ] Qt มีให้บริการภายใต้ทั้งใบอนุญาตเชิงพาณิชย์[ 4 ]และ ใบอนุญาต โอเพนซอร์ส[ 12 ] ได้แก่ GPL 2.0, GPL 3.0 และLGPL 3.0 [ 5 ] [ 6 ]

จุดประสงค์และความสามารถ

Qt ใช้สำหรับการพัฒนาอินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) และ แอปพลิเคชันแบบหลายแพลตฟอร์ม ที่ทำงานบนแพลตฟอร์ม เดสก์ท็อปหลักทั้งหมดรวมถึงแพลตฟอร์มมือถือหรือแบบฝังตัว โปรแกรม GUI ส่วนใหญ่ที่สร้างด้วย Qt มีอินเทอร์เฟซที่ดูเหมือนเนทีฟ ซึ่งในกรณีนี้ Qt จะถูกจัดประเภทเป็นชุดเครื่องมือวิดเจ็ตนอกจากนี้ยังสามารถพัฒนาโปรแกรมที่ไม่ใช่ GUI ได้ เช่น เครื่องมือ บรรทัดคำสั่งและคอนโซลสำหรับเซิร์ฟเวอร์ ตัวอย่างของโปรแกรมที่ไม่ใช่ GUI ที่ใช้ Qt คือเฟรมเวิร์กเว็บ Cutelyst [ 13 ]

Qt รองรับคอมไพเลอร์ C++ หลายประเภท รวมถึง คอมไพเลอร์ GCCและClang C++ และ ชุด โปรแกรม Visual Studio นอกจาก นี้ยังรองรับภาษาอื่นๆ ด้วยการเชื่อมต่อหรือส่วนขยาย เช่นPythonผ่านการเชื่อมต่อ Python [ 14 ]และPHPผ่านส่วนขยายสำหรับ PHP5 [ 15 ]และมี การสนับสนุน การใช้งาน หลายภาษาอย่างครอบคลุม Qt ยังมีQt Quickซึ่งรวมถึงภาษาสคริปต์แบบประกาศ ที่เรียกว่าQMLที่อนุญาตให้ใช้JavaScriptในการกำหนดตรรกะ ด้วย Qt Quick การพัฒนาแอปพลิเคชันอย่างรวดเร็วสำหรับอุปกรณ์เคลื่อนที่จึงเป็นไปได้ ในขณะที่ตรรกะยังคงสามารถเขียนด้วยโค้ดเนทีฟเพื่อให้ได้ประสิทธิภาพที่ดีที่สุด

คุณสมบัติอื่นๆ ได้แก่ การเข้าถึงฐานข้อมูล SQL , การแยกวิเคราะห์ XML , การแยกวิเคราะห์ JSON , การจัดการ เธรดและการสนับสนุนเครือข่าย

การเผยแพร่

เวอร์ชันล่าสุดของ Qt Framework คือ Qt 6.11 ซึ่งวางจำหน่ายเมื่อวันที่ 23 มีนาคม พ.ศ. 2569 [ 16 ]

นอกจากนี้ เวอร์ชัน 6.10 ยังคงได้รับการสนับสนุนจนถึงวันที่ 7 ตุลาคม 2026 และเวอร์ชัน 6.8 LTS จนถึงวันที่ 8 ตุลาคม 2029 เวอร์ชัน 6.5 LTS ได้รับการสนับสนุนสำหรับผู้ใช้เชิงพาณิชย์เท่านั้นจนถึงวันที่ 3 เมษายน 2026 นอกจากนี้ ยังมีการสนับสนุนเพิ่มเติมสำหรับเวอร์ชัน 5.0 (ที่วางจำหน่ายในปี 2012) และเวอร์ชันที่ใหม่กว่าสำหรับผู้ใช้เชิงพาณิชย์[ 17 ]

โดยทั่วไปแล้ว Qt เวอร์ชันย่อยจะออกวางจำหน่ายปีละสองครั้ง และได้รับการสนับสนุนเป็นเวลาหนึ่งปีหลังจากวันที่วางจำหน่ายภายใต้เงื่อนไขการสนับสนุนมาตรฐาน โดยทั่วไปแล้ว เวอร์ชันย่อยทุกๆ สามเวอร์ชันจะกลายเป็น เวอร์ชัน สนับสนุนระยะยาวซึ่งจะได้รับแพตช์เพิ่มเติม เวอร์ชัน LTS จะได้รับการสนับสนุนสำหรับผู้ใช้เชิงพาณิชย์เป็นเวลาห้าปีหลังจากวันที่วางจำหน่าย (สามปีก่อนเวอร์ชัน 6.8) [ 17 ]

Qt กำลังใช้งาน

ในปี 2017 บริษัท Qt ประเมินว่ามีชุมชนนักพัฒนาประมาณ 1 ล้านคนทั่วโลก[ 18 ]ในกว่า 70 อุตสาหกรรม[ 19 ]

ส่วนติดต่อผู้ใช้บนเดสก์ท็อป

Konqiมาสคอตของ KDE

ส่วนติดต่อผู้ใช้แบบกราฟิกและสภาพแวดล้อมเดสก์ท็อปที่ใช้ Qt/QML เป็นชุดเครื่องมือวิดเจ็ต:

  • KDE Plasma สภาพแวดล้อมเดสก์ท็อปแบบโอเพนซอร์ส สำหรับอุปกรณ์คอมพิวเตอร์ต่างๆ[ 20 ]
  • DDE ( Deepin Desktop Environment) ของ Linux Deepin [ 21 ] [ 22 ]
  • UKUI ( ส่วนต่อประสานผู้ใช้ Ubuntu Kylin ) [ 23 ]
  • CutefishDE สภาพแวดล้อมเดสก์ท็อปที่สร้างขึ้นด้วย Qt Quick และเฟรมเวิร์ก KDE ที่จำเป็น[ 24 ]
  • LXQt (Lightweight X11 Desktop Environment)
  • Luminaสภาพแวดล้อมเดสก์ท็อปที่ออกแบบมาสำหรับTrueOS ที่ใช้BSD [ 25 ]
  • Lomiri (เดิมชื่อUnity8 ) [ 26 ]สภาพแวดล้อมเดสก์ท็อปแบบรวมศูนย์ที่เริ่มต้นโดย Canonical และดูแลโดย Ubports [ 27 ]
  • Maui Shell ซึ่งเป็น DE ที่มีชุดแอปของตัวเองด้วย[ 28 ]
  • Unity 2Dคือส่วนติดต่อผู้ใช้บนเดสก์ท็อปที่เขียนด้วย Qt และ QML
  • Trinity DEซึ่งเป็นเวอร์ชันที่พัฒนาอย่างต่อเนื่องโดยอิงจาก KDE3 [ 29 ]
  • SDDMคือตัวจัดการการแสดงผลที่เขียนด้วยQMLซึ่งใช้งานร่วมกับX11และWaylandได้

ส่วนติดต่อผู้ใช้แบบฝังตัวและบนมือถือ

  • พัฒนาหรือบำรุงรักษาอย่างต่อเนื่อง
    • AsteroidOSระบบปฏิบัติการโอเพนซอร์สที่ออกแบบมาสำหรับสมาร์ทวอทช์
    • ระบบอิเล็กทรอนิกส์การบิน ระบบความบันเทิงบนเครื่องบินของพานาโซนิค[ 30 ] [ 31 ]
    • Sailfish OSคือระบบปฏิบัติการมือถือที่พัฒนาโดยJolla
    • Plasma Mobileคือ GUI ที่ใช้งานด้วยระบบสัมผัส พัฒนาโดยKDE
    • LuneOSระบบปฏิบัติการที่พัฒนาโดยชุมชนผู้ใช้งาน ซึ่งเป็นรุ่นต่อจาก Palm/HP webOS
    • Nemo Mobileสร้างขึ้นบนพื้นฐานของ Mer
    • Lomiriซึ่งเดิมชื่อ Unity8 เป็น UI สำหรับโทรศัพท์มือถือที่พัฒนาโดย Ubports โดยมี Canonical เป็นผู้พัฒนาดั้งเดิม
    • ส่วนติดต่อผู้ใช้ในรถยนต์Tesla Model S [ 32 ]
    • webOSระบบปฏิบัติการมัลติทาสก์จาก LG สำหรับอุปกรณ์อัจฉริยะ เช่น ทีวีและสมาร์ทวอทช์
    • Sky Qระบบความบันเทิงภายในบ้านของSky plc [ 33 ]
  • พร้อมใช้งาน แต่ยังไม่ทำงาน
    • ประสบการณ์ผู้ใช้ (UX) ของโทรศัพท์มือถือและแท็บเล็ตMeeGo
    • Qtopiaคือระบบจาก Nokia สำหรับอุปกรณ์ฝังตัวและอุปกรณ์พกพา

แอปพลิเคชันที่ใช้ Qt

ซอฟต์แวร์ข้ามแพลตฟอร์มโอเพนซอร์สหรือกรรมสิทธิ์ที่โดดเด่นจำนวนมากใช้ Qt หรือQML : [ 34 ]

  • 010 Editorเป็นโปรแกรมแก้ไขเลขฐานสิบหกและโปรแกรมแก้ไขข้อความเชิงพาณิชย์สำหรับ Microsoft Windows, Linux และ macOS
  • เอเบิลตันไลฟ์
  • อัลบั้ม Adobe Photoshop [ 35 ]
  • Adobe Photoshop Elements [ 36 ]
  • แอปพลิเคชันเครื่องมือไดรเวอร์Radeon Software Crimson Edition ของ AMD [ 37 ]
  • Audaciousคือโปรแกรมเล่นเพลงสำหรับLinux ระบบปฏิบัติการ ที่คล้าย Unixอื่นๆและ Microsoft Windows
  • Audacityเป็นโปรแกรมแก้ไขและบันทึกเสียงดิจิทัล (เริ่มตั้งแต่เวอร์ชัน 4.0) [ 38 ]
  • Autodesk Fusion [ 39 ]
  • Autodesk Maya [ 40 ]
  • Autodesk 3ds Max [ 41 ]
  • Bitcoin Coreคือการใช้งาน Bitcoin ในรูปแบบมาตรฐาน ฟอร์กของ Bitcoin ส่วนใหญ่ก็มี GUI ในรูปแบบมาตรฐานนี้เช่นกัน
  • Calibreแอปพลิเคชันรวบรวมอีบุ๊ก[ 42 ]
  • Celestiaโปรแกรมจำลอง 3 มิติแบบเรียลไทม์ของจักรวาลทั้งหมดที่เรารู้จัก (Qt ใช้ได้เฉพาะกับเวอร์ชัน 1.7.0 เท่านั้น)
  • โปรแกรมแก้ไขCryEngine V [ 43 ]
  • DaVinci Resolveโปรแกรมตัดต่อวิดีโอ
  • Dogecoin Core [ 44 ]ซอฟต์แวร์สกุลเงินดิจิทัลที่ขับเคลื่อนโดยชุมชน
  • Dolphin (โปรแกรมจำลอง)โปรแกรมจำลองสำหรับเครื่อง WiiและGameCube
  • ซอฟต์แวร์สัญกรณ์Dorico
  • ซอฟต์แวร์แอนิเมชั่นสต็อปโมชั่นDragonframe [ 45 ]
  • EAGLEจากCadSoft Computer / Autodeskเป็นแอปพลิเคชัน EDA ที่มีคุณสมบัติการออกแบบวงจร การจัดวาง PCB การวางเส้นทางอัตโนมัติ และ CAM
  • FreeCAD โปรแกรมสร้างแบบจำลอง 3 มิติแบบพาราเมตริกโอเพนซอร์สฟรี
  • FreeMat คือสภาพแวดล้อมการคำนวณเชิงตัวเลขแบบโอเพนซอร์สฟรี
  • Gambas คือสภาพแวดล้อมการพัฒนาแบบบูรณาการ BASIC แบบ โอเพนซอร์สฟรี
  • ชุดสื่อการเรียนรู้ GComprisสำหรับเด็ก
  • Google Earth [ 46 ]
  • GPlatesคือซอฟต์แวร์แสดงภาพแผ่นเปลือกโลก
  • Igor Proซอฟต์แวร์วิเคราะห์ข้อมูล
  • ซอฟต์แวร์แก้ไขกราฟิกและวาดภาพดิจิทัลKrita [ 47 ]
  • LMMSคือซอฟต์แวร์ผลิตเพลงที่ใช้งานได้บนหลายแพลตฟอร์ม
  • LyXคือโปรแกรมประมวลผลเอกสารที่ยึดหลัก "สิ่งที่คุณเห็นคือสิ่งที่คุณหมายถึง"
  • Mathematicaเป็นโปรแกรมคำนวณเชิงสัญลักษณ์ทางคณิตศาสตร์ บางครั้งเรียกว่าระบบหรือโปรแกรมพีชคณิตคอมพิวเตอร์ ซึ่งใช้ในหลายสาขาวิทยาศาสตร์ วิศวกรรม คณิตศาสตร์ และการคำนวณ[ 48 ]
  • Mixxxแอปพลิเคชันดีเจดิจิทัลแบบโอเพนซอร์ส[ 49 ]
  • Moneroซึ่งเป็นสกุลเงินดิจิทัลที่เน้นความเป็นส่วนตัวใช้ Qt ในการ พัฒนา ซอฟต์แวร์กระเป๋าเงิน เดสก์ท็อปอย่างเป็นทางการ [ 50 ]
  • MuseScoreคือซอฟต์แวร์เขียนโน้ตดนตรีแบบโอเพนซอร์สที่ใช้งานได้บนหลายแพลตฟอร์ม
  • OBSคือซอฟต์แวร์บันทึกหน้าจอแบบโอเพนซอร์สที่ใช้งานได้บนหลายแพลตฟอร์ม
  • ชุดการทำเหมืองข้อมูลสีส้ม[ 51 ]
  • ยูทิลิตี้ทดสอบเครือข่ายผู้ส่งแพ็กเก็ต[ 52 ]
  • ParaViewเป็นแอปพลิเคชันโอเพนซอร์สข้ามแพลตฟอร์มสำหรับการแสดงภาพเชิงวิทยาศาสตร์แบบโต้ตอบ[ 53 ]
  • PCSX2คือโปรแกรมจำลอง PlayStation 2 แบบโอเพนซอร์สและใช้งานได้ฟรีบนหลายแพลตฟอร์ม
  • qBittorrentไคลเอนต์ BitTorrent แบบโอเพนซอร์สและใช้งานได้หลายแพลตฟอร์ม[ 54 ]
  • ระบบสารสนเทศภูมิศาสตร์QGIS [ 55 ]
  • โปรแกรมบันทึกและตัดต่อเสียงแบบหลายแทร็กQtractor Audio
  • โปรแกรมอ่านฟีด RSS ของ QuiteRSS
  • แพลตฟอร์มการสื่อสารแบบตัวต่อตัวRetroshare
  • Roblox Studioคือเครื่องมือสร้างเกมที่ใช้บนแพลตฟอร์ม Roblox
  • ซอฟต์แวร์การจัดพิมพ์บนเดสก์ท็อปScribus [ 56 ]
  • ซอฟต์แวร์แต่งเพลงและบันทึกโน้ตดนตรีSibelius [ 57 ]
  • SoulseekQTซึ่งเป็นไคลเอนต์แชร์ไฟล์แบบ P2P [ 58 ]
  • เครื่องมือเอนจิ้นSource 2 [ 59 ]เอนจิ้นเกมวิดีโอ 3 มิติที่พัฒนาโดยValve
  • SpyderคือIDE สำหรับ Python
  • Stellariumโปรแกรมท้องฟ้าจำลอง
  • Subsurfaceซอฟต์แวร์สำหรับบันทึกและวางแผนการดำน้ำลึก ซึ่งได้รับการออกแบบและพัฒนาโดย Linus Torvalds ในตอนแรก[ 60 ]
  • SuperColliderคือสภาพแวดล้อมและภาษาโปรแกรมสำหรับการสังเคราะห์เสียงแบบเรียลไทม์และการประพันธ์เพลงด้วยอัลกอริทึม
  • Synergyคือโปรแกรมสำหรับใช้ร่วมกันระหว่างคอมพิวเตอร์หลายเครื่อง โดยสามารถแชร์คีย์บอร์ดและเมาส์ได้
  • Teamviewerเป็นซอฟต์แวร์คอมพิวเตอร์สำหรับการควบคุมระยะไกล การแชร์เดสก์ท็อป การประชุมออนไลน์ การประชุมผ่านเว็บ และการถ่ายโอนไฟล์ระหว่างคอมพิวเตอร์[ 61 ]
  • Telegramซึ่งเป็นโปรแกรมรับส่งข้อความสำหรับ Windows, Mac และ Linux [ 62 ]
  • ซอฟต์แวร์จำลองระบบปฏิบัติการVirtualBox [ 63 ]
  • โปรแกรมเล่นสื่อ VLC [ 64 ]
  • เวแชท 4.0
  • Wiresharkซึ่งเป็นเครื่องมือวิเคราะห์แพ็กเก็ต[ 65 ]
  • สำนักงาน WPS [ 66 ]
  • XaoSเครื่องมือซูมภาพแฟร็กทัลแบบเรียลไทม์
  • XnView MP [ 67 ]

องค์กรที่ใช้ Qt

Qt ถูกนำไปใช้งานโดยบริษัทและองค์กรหลากหลายประเภท เช่น

สถาปัตยกรรมซอฟต์แวร์ Qt

ตัวอย่างการใช้งาน Qt ในระบบที่ใช้ลินุกซ์

แนวคิด Qt

Qt สร้างขึ้นบนแนวคิดหลักเหล่านี้:

การแยกส่วน GUI อย่างสมบูรณ์

เมื่อเปิดตัวครั้งแรก Qt ใช้เอ็นจิ้นการวาดภาพและการควบคุมของตัวเอง โดยจำลองรูปลักษณ์ของแพลตฟอร์มต่างๆ ที่ทำงานอยู่เมื่อวาดวิดเจ็ต ซึ่งทำให้การพอร์ตทำได้ง่ายขึ้น เนื่องจากมีคลาสใน Qt เพียงไม่กี่คลาสเท่านั้นที่ขึ้นอยู่กับแพลตฟอร์มเป้าหมาย อย่างไรก็ตาม บางครั้งสิ่งนี้ก็นำไปสู่ความคลาดเคลื่อนเล็กน้อยในกรณีที่การจำลองนั้นไม่สมบูรณ์ เวอร์ชันล่าสุดของ Qt ใช้ API สไตล์ดั้งเดิมของแพลตฟอร์มต่างๆ บนแพลตฟอร์มที่มีชุดวิดเจ็ตดั้งเดิม เพื่อสอบถามเมตริกและวาดการควบคุมส่วนใหญ่ และไม่ประสบปัญหาดังกล่าวบ่อยนัก[ 93 ]บนบางแพลตฟอร์ม (เช่น MeeGo และ KDE) Qt เป็น API ดั้งเดิม ชุดเครื่องมือกราฟิกแบบพกพาอื่นๆ บางชุดได้ตัดสินใจออกแบบที่แตกต่างกัน ตัวอย่างเช่นwxWidgetsใช้ชุดเครื่องมือของแพลตฟอร์มเป้าหมายสำหรับการใช้งาน

สัญญาณและช่องสัญญาณ

สัญญาณและสล็อตเป็นโครงสร้างภาษาที่นำมาใช้ใน Qt สำหรับการสื่อสารระหว่างวัตถุ[ 94 ]ซึ่งทำให้ง่ายต่อการใช้งานรูปแบบผู้สังเกตการณ์ในขณะที่หลีกเลี่ยงโค้ดซ้ำซ้อนแนวคิดคือวิดเจ็ต GUI สามารถส่งสัญญาณที่มีข้อมูลเหตุการณ์ซึ่งสามารถรับได้โดยตัวควบคุมอื่นๆ โดยใช้ฟังก์ชันพิเศษที่เรียกว่าสล็อต

คอมไพเลอร์เมตาออบเจ็กต์

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

Qt moc ไม่รู้จักโมดูลในตัวประมวลผลล่วงหน้าในขณะนี้[ 95 ]

การเชื่อมโยงภาษา

Qt สามารถใช้งานได้ในภาษาการเขียนโปรแกรม หลายภาษา นอกเหนือจาก C++ เช่น Python, JavaScript, C# และ Rust [ 96 ]ผ่านการผูกภาษา ภาษาหลายภาษามีการผูกสำหรับ Qt 5และการผูกสำหรับ Qt 4

ในปี 2025 บริษัท Qt ได้ประกาศ "เทคโนโลยีเชื่อมต่อ" ใหม่[ 97 ]ซึ่งมีเป้าหมายเพื่อคิดใหม่ถึงวิธีการโต้ตอบกับภาษาใหม่ๆ โดยระบุว่ากำลังดำเนินการพิสูจน์แนวคิดเพื่อบูรณาการ C#, Rust, Swift, Java/Kotlin และ Python

โมดูล Qt

ตั้งแต่ Qt 4.0 เป็นต้นไป เฟรมเวิร์กถูกแบ่งออกเป็นโมดูลย่อย[ 98 ] [ 99 ]ใน Qt 5.0 สถาปัตยกรรมถูกแบ่งเป็นโมดูลย่อยมากยิ่งขึ้น[ 100 ] [ 101 ]ปัจจุบัน Qt ถูกแบ่งออกเป็น โมดูล หลักและโมดูลเสริม[ 102 ]

โดยค่าเริ่มต้น คลาส Qt จะไม่อยู่ในเนมสเปซ ใดๆ แต่คลาสทั้งหมดจะมีคำนำหน้าเป็นตัวอักษรQ Qt สามารถกำหนดค่าให้คอมไพล์เพื่ออยู่ในเนมสเปซที่ผู้ใช้กำหนดได้[ 103 ] Qt จัดเตรียมไว้ทั้งหมดผ่านไฟล์ส่วนหัวและปัจจุบันยังไม่รองรับโมดูล C ++

Qt essentials

โมดูล ส่วนหัว คำอธิบาย
คิวที คอร์<QtCore>โมดูล Qt ที่จำเป็นเพียงโมดูลเดียว ซึ่งประกอบด้วยคลาสที่โมดูลอื่นๆ ใช้ รวมถึงระบบเมตาออบเจ็กต์ การทำงานพร้อมกันและการทำงานแบบมัลติเธรด คอนเทนเนอร์ ระบบเหตุการณ์ ปลั๊กอิน และสิ่งอำนวยความสะดวกด้าน I/O
Qt GUI<QtGui>โมดูล GUI หลัก ใน Qt 5 โมดูลนี้ขึ้นอยู่กับOpenGLแต่ไม่มีคลาสวิดเจ็ตใด ๆ อีกต่อไป
Qt Widgets<QtWidgets>ประกอบด้วยคลาสสำหรับแอปพลิเคชัน GUI แบบคลาสสิกที่ใช้ Widget และคลาส QSceneGraph แยกออกมาจากQtGuiใน Qt 5
คิวที คิวเอ็มแอล<QtQml>โมดูลสำหรับภาษา QMLและJavaScript
ควอร์ต ควิก<QtQuick>โมดูลสำหรับแอปพลิเคชัน GUI ที่เขียนโดยใช้ QML2
Qt Quick Controls<QtQuickControls>ส่วนควบคุมแบบวิดเจ็ตสำหรับQt Quickซึ่งออกแบบมาเพื่อใช้งานบนเดสก์ท็อปเป็นหลัก
Qt Quick Layouts<QtQuickLayouts>รูปแบบการจัดเรียงรายการในQt Quick
เครือข่าย Qt<QtNetwork>เลเยอร์นามธรรมเครือข่าย รองรับโปรโตคอลTCP , UDP , HTTP , TLS , SSL (ใน Qt 4) และSPDY (ตั้งแต่ Qt 5.3) อย่างครบถ้วน
คิวที มัลติมีเดีย<QtMultimedia>คลาสสำหรับฟังก์ชันการทำงานด้านเสียง วิดีโอ วิทยุ และกล้องถ่ายรูป
วิดเจ็ตมัลติมีเดีย Qt<QtMultimediaWidgets>วิดเจ็ตจากQt Multimedia
Qt SQL<QtSql>ประกอบด้วยคลาสสำหรับการเชื่อมต่อฐานข้อมูลโดยใช้ SQL
Qt WebEngine<QtWebEngine>ชุด API ใหม่สำหรับ Qt Widget และ QML webview ที่ใช้Chromiumเป็น พื้นฐาน
การทดสอบคิวที<QtTest>คลาสสำหรับการทดสอบหน่วย (unit testing) แอปพลิเคชันและไลบรารีของ Qt

ส่วนเสริม Qt

โมดูล ส่วนหัว คำอธิบาย
แอคทีฟคิวที<QtActive>คลาสสำหรับแอปพลิเคชันที่ใช้ ActiveX
แผนภูมิ Qt<QtCharts>มีฟังก์ชันและวิดเจ็ตสำหรับสร้างแผนภูมิหลากหลายประเภท
บลูทูธ Qt<QtBluetooth>ชั้นเรียนที่เข้าถึงฮาร์ดแวร์ บลูทูธ
Qt D-Bus<QtDBus>คลาสสำหรับการสื่อสารระหว่างกระบวนการ (IPC) โดยใช้โปรโตคอล D-Bus
Qt NFC<QtNfc>คลาสเรียนที่เข้าถึง ฮาร์ดแวร์ NFCปัจจุบันรองรับอย่างเป็นทางการเฉพาะบนฮาร์ดแวร์ BlackBerry เท่านั้น (หรือ N9 ในเวอร์ชัน MeeGo)
Qt OpenGL<QtOpenGL>โมดูลเดิมที่ประกอบด้วย คลาส OpenGLจาก Qt 4 ใน Qt 5 แนะนำให้ใช้ ฟังก์ชันการทำงานที่คล้ายกันใน Qt GUI
ตำแหน่งคิวที<QtLocation>คลาสสำหรับเข้าถึงGPSและบริการระบุตำแหน่งอื่นๆ รวมถึงสำหรับการทำแผนที่และการนำทาง แยกออกมาจากโมดูล Qt 4 Mobility ของQt Locationรองรับบน Android, BlackBerry, iOS, Linux (โดยใช้GeoClue ), Windows และ Sailfish OS
Qt Quick 3D<Qt3D>คลาสสำหรับเรนเดอร์โมเดล3 มิติวิดีโอเกมการจำลอง และส่วนติดต่อผู้ใช้ 3 มิติโดยใช้ API Qt QML ลงใน กราฟฉากแบบผสม 2 มิติและ 3 มิติ
คิวทีสคริปต์<QtScript>โมดูลเดิมสำหรับการเขียนสคริปต์แอปพลิเคชัน Qt โดยใช้ ECMAScript/ JavaScriptใน Qt 5 แนะนำให้ ใช้คลาสที่คล้ายกันใน Qt QML
เซ็นเซอร์ Qt<QtSensors>คลาสสำหรับเข้าถึงเซ็นเซอร์ฮาร์ดแวร์ต่างๆ ของอุปกรณ์พกพา เคยเป็นส่วนหนึ่งของ Qt Mobile ใน Qt 4 รองรับบน Android, BlackBerry, iOS, WinRT, Mer และ Linux
พอร์ตอนุกรม Qt<QtSerialPort>คลาสสำหรับเข้าถึงพอร์ตอนุกรมฮาร์ดแวร์และเสมือน รองรับบน Windows, Linux และ macOS
Qt WebChannel<QtWebChannel>ช่วยให้สามารถเข้าถึงอ็อบเจ็กต์ Qt ใน HTML/JavaScript ผ่านทางWebSocketsได้
Qt WebKit<QtWebKit>การใช้งาน WebKitและ API ของ Qt
วิดเจ็ต Qt WebKit<QtWebKitWidgets>API วิดเจ็ตสำหรับQt WebKit
Qt WebSockets<QtWebSockets>มีระบบรองรับ WebSocket
Qt XML<QtXml>โมดูลเดิมที่ประกอบด้วยคลาสสำหรับ API XMLสไตล์SAXและDOMถูกแทนที่ด้วยคลาส QXmlStreamReader และ QXmlStreamWriter ในQt Coreแล้ว
รูปแบบ XML ของ Qt<QtXmlPatterns>รองรับการตรวจสอบความถูกต้อง ด้วย XPath , XQuery , XSLTและXML Schema

ฉบับพิมพ์

Qt มีให้เลือกใช้งาน 4 รุ่น ได้แก่Community , Indie Mobile , ProfessionalและEnterprise [ 104 ] รุ่น Community อยู่ภายใต้ใบอนุญาตโอเพนซอร์ส ในขณะที่รุ่น Indie Mobile, Professional และ Enterprise ซึ่งมีฟังก์ชัน การทำงานและไลบรารีเพิ่มเติม เช่น Enterprise Controls [ 104 ]จำหน่ายในเชิงพาณิชย์โดย The Qt Company

แพลตฟอร์มที่รองรับ

Qt สามารถใช้งานได้บนแพลตฟอร์มต่างๆ มากมาย โดยแพลตฟอร์มที่ได้รับการสนับสนุนอย่างเป็นทางการมีดังต่อไปนี้:

แพลตฟอร์มคำอธิบาย
ลินุกซ์/ยูนิกซ์
เอ็กซ์11Qt สำหรับระบบ X Window ( Linux ); [ 105 ] FreeBSD , NetBSD , OpenBSDและDragonFly BSDได้รับการสนับสนุนจากชุมชน
เวย์แลนด์แอปพลิเคชัน Qt สามารถสลับระหว่างแบ็กเอนด์กราฟิก เช่น X และWayland ได้ ในระหว่างการโหลดด้วยตัวเลือกบรรทัดคำสั่ง -platform [ 106 ] [ 107 ]ซึ่งช่วยให้การเปลี่ยนผ่านของแอปพลิเคชัน Qt จาก X11 ไปยัง Wayland เป็นไปอย่างราบรื่นSailfishOSใช้ Wayland เท่านั้น เนื่องจากไม่มี X11 [ 108 ]
แอนดรอยด์Qt สำหรับAndroid [ 109 ] (เดิมชื่อ Necessitas) [ 110 ]
ลินุกซ์ฝังตัวQt สำหรับแพลตฟอร์มฝังตัว: ผู้ช่วยดิจิทัลส่วนบุคคลมาร์ทโฟนฯลฯ[ 111 ]มีอยู่หลายแพลตฟอร์มขึ้นอยู่กับเทคโนโลยีการแสดงผลDirectFB , LinuxFBและ EGLFS ( EGL Full Screen)
แพลตฟอร์มของไมโครซอฟต์
วินโดวส์Qt สำหรับ Microsoft Windows 7 , 8 , 10และ11รวมถึงUWP 10 [ 112 ]
วินโดวส์ อาร์ทีการสนับสนุน แอป Windows 10 Mobileที่ใช้WinRTและWindows 10 IoT [ 113 ]
แพลตฟอร์ม Apple
ระบบปฏิบัติการ macOSQt สำหรับ Apple macOS ; รองรับแอปพลิเคชันบนCocoa [ 114 ]
แอป iOSQt สำหรับแพลตฟอร์มiOS ( iPhone , iPad ) [ 115 ]
แพลตฟอร์มฝังตัวอื่นๆ
ความซื่อสัตย์Qt สำหรับความสมบูรณ์[ 116 ]
คิวเอ็นเอ็กซ์Qt สำหรับQNX [ 117 ] [ 118 ]
วีเอ็กซ์เวิร์คส์Qt สำหรับVxWorks [ 119 ] [ 120 ] มีให้บริการภายใต้ใบอนุญาต กรรมสิทธิ์ (เชิงพาณิชย์) เท่านั้นQt 5.5
QT สำหรับ MCUQT สำหรับ MCU [ 121 ]

หลังจากที่ Nokia เปิดซอร์สโค้ดของ Qt ให้กับชุมชนบนGitoriousก็ได้มีพอร์ตต่างๆ ปรากฏขึ้นมา นอกจากนี้ยังมีพอร์ตของ Qt บางพอร์ตที่อาจยังมีอยู่ แต่ไม่ได้รับการสนับสนุนอีกต่อไปแล้ว แพลตฟอร์มเหล่านี้แสดงอยู่ในรายการแพลตฟอร์มที่ Qt รองรับ โปรดดูที่นั่นสำหรับ ข้อมูล การสนับสนุนจากชุมชนในปัจจุบันสำหรับแพลตฟอร์มอื่นๆ ที่ไม่ค่อยเป็นที่รู้จัก เช่นSailfishOS

การออกใบอนุญาต

Qt สามารถใช้งานได้ภายใต้ใบอนุญาตซอฟต์แวร์เสรีดังต่อไปนี้: [ 12 ] GPL 2.0 , GPL 3.0 , LGPL 3.0และLGPL 2.1 (โดยมีข้อยกเว้นพิเศษสำหรับ Qt) [ 5 ] [ 122 ]โปรดทราบว่าโมดูลบางโมดูลสามารถใช้งานได้ภายใต้ใบอนุญาต GPL เท่านั้น ซึ่งหมายความว่าแอปพลิเคชันที่เชื่อมโยงกับโมดูลเหล่านี้จำเป็นต้องปฏิบัติตามใบอนุญาตดังกล่าว[ 123 ]

นอกจากนี้ Qt ยังมีให้บริการภายใต้ใบอนุญาตเชิงพาณิชย์ เช่น Qt Commercial License [ 4 ]ซึ่งอนุญาตให้พัฒนาแอปพลิเคชันที่เป็นกรรมสิทธิ์โดยไม่มีข้อจำกัดด้านใบอนุญาต

เครื่องมือ Qt

Qt มาพร้อมกับชุดเครื่องมือของตัวเองเพื่อช่วยให้การพัฒนาข้ามแพลตฟอร์มเป็นไปได้ง่ายขึ้น ซึ่งหากไม่มี Qt การพัฒนาข้ามแพลตฟอร์มอาจยุ่งยากเนื่องจากต้องใช้ชุดเครื่องมือพัฒนาที่แตกต่างกัน

Qt Creator เป็น IDEข้ามแพลตฟอร์มสำหรับ C++ และ QML ฟังก์ชันการจัดวาง/ออกแบบ GUIของQt Designerถูกรวมเข้าไว้ใน IDE นี้แล้ว แม้ว่า Qt Designer ยังสามารถใช้งานเป็นเครื่องมือแบบสแตนด์อโลนได้เช่นกัน

นอกจาก Qt Creator แล้ว Qt ยังมีqmake ซึ่งเป็น เครื่องมือสร้างสคริปต์การสร้างแบบข้ามแพลตฟอร์มที่ช่วยสร้างไฟล์ Makefile สำหรับโครงการพัฒนาซอฟต์แวร์บนแพลตฟอร์มต่างๆ โดยอัตโนมัติ นอกจากนี้ยังมีเครื่องมืออื่นๆ ใน Qt เช่น Qt Designer ซึ่งเป็นเครื่องมือสร้างส่วนติดต่อผู้ใช้ และ Qt Assistant ซึ่งเป็นเครื่องมือเรียกดูความช่วยเหลือ (ซึ่งทั้งสองอย่างนี้ฝังอยู่ใน Qt Creator) รวมถึงเครื่องมือแปลภาษา Qt Linguist, uic (ตัวคอมไพเลอร์ส่วนติดต่อผู้ใช้) และ moc (ตัวคอมไพเลอร์เมตาออบเจ็กต์)

ประวัติของ Qt

พัฒนาการในช่วงแรก

ในช่วงฤดูร้อนปี 1990 Haavard Nord และ Eirik Chambe-Eng (ผู้พัฒนา Qt ดั้งเดิมและซีอีโอและประธานบริษัท The Qt Company ตามลำดับ) ได้ร่วมกันพัฒนาแอปพลิเคชันฐานข้อมูลสำหรับภาพอัลตราซาวนด์ที่เขียนด้วยภาษา C++ และทำงานบนระบบปฏิบัติการMac OS , UnixและMicrosoft Windowsรุ่น คลาสสิก [ 1 ] [ 124 ]พวกเขาเริ่มพัฒนา "Qt" ในปี 1991 สามปีก่อนที่บริษัทจะจดทะเบียนเป็น Quasar Technologies จากนั้นเปลี่ยนชื่อเป็น Troll Tech และต่อมาเป็น Trolltech [ 1 ]

ชุดเครื่องมือนี้เรียกว่า Qt เพราะตัวอักษรQ ดูน่าสนใจในแบบอักษร Emacsของ Haavard และ "t" ได้รับแรงบันดาลใจจากXtซึ่งเป็นชุดเครื่องมือ X [ 1 ]

Qt สองเวอร์ชันแรกมีให้เลือกเพียงสองแบบ คือ Qt/X11 สำหรับ Unix และ Qt/Windows สำหรับ Windows

เมื่อวันที่ 20 พฤษภาคม 1995 Trolltech ได้เผยแพร่ Qt 0.90 สำหรับ X11/Linux สู่สาธารณะพร้อมซอร์สโค้ดภายใต้ใบอนุญาต Qt Free Edition [ 125 ] [ 126 ] [ 127 ] ใบอนุญาตนี้ถูกมองว่าไม่สอดคล้องกับคำจำกัดความของซอฟต์แวร์เสรีโดยFree Software Foundationเนื่องจากในขณะที่ซอร์สโค้ดมีให้ใช้งาน แต่ก็ไม่อนุญาตให้มีการแจกจ่ายเวอร์ชันที่แก้ไขแล้ว Trolltech ใช้ใบอนุญาตนี้จนถึงเวอร์ชัน 1.45 ความขัดแย้งปะทุขึ้นประมาณปี 1998 เมื่อเป็นที่ชัดเจนว่าK Desktop Environmentจะกลายเป็นหนึ่งในสภาพแวดล้อมเดสก์ท็อปชั้นนำสำหรับ Linux เนื่องจากมันใช้ Qt เป็นพื้นฐาน ผู้คนจำนวนมากในขบวนการซอฟต์แวร์เสรีจึงกังวลว่าส่วนสำคัญของระบบปฏิบัติการหลักระบบหนึ่งของพวกเขาจะเป็นกรรมสิทธิ์

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

การทำให้เป็นมิตรกับซอฟต์แวร์โอเพนซอร์ส

เมื่อมีการปล่อยเวอร์ชัน 2.0 ของชุดเครื่องมือในช่วงกลางปี ​​1999 ใบอนุญาตก็ถูกเปลี่ยนเป็นQ Public License (QPL) ซึ่งเป็น ใบอนุญาต ซอฟต์แวร์เสรีแต่Free Software Foundation ถือว่า ไม่เข้ากันกับ GPL จึงมีการแสวงหาการประนีประนอมระหว่าง KDE และ Trolltech โดยที่ Qt จะไม่สามารถอยู่ภายใต้ใบอนุญาตที่เข้มงวดกว่า QPL ได้ แม้ว่า Trolltech จะถูกซื้อกิจการหรือล้มละลายก็ตาม ซึ่งนำไปสู่การก่อตั้งมูลนิธิ KDE Free Qt [ 128 ]ซึ่งรับประกันว่า Qt จะอยู่ภายใต้ใบอนุญาตแบบ BSDหากไม่มีการปล่อยเวอร์ชัน Qt แบบโอเพนซอร์ส/ฟรีภายใน 12 เดือน[ 129 ] [ 130 ]

ในปี พ.ศ. 2543 Qt/X11 2.2 ได้รับการเผยแพร่ภายใต้ GPL v2 [ 131 ]ซึ่งยุติข้อโต้แย้งทั้งหมดเกี่ยวกับ ความเข้ากันได้ ของ GPL

ในช่วงปลายปี 2544 Trolltech ได้ออก Qt 3.0 ซึ่งเพิ่มการรองรับ Mac OS X (ปัจจุบันรู้จักกันในชื่อmacOS ) การรองรับ Mac OS X มีให้ใช้งานเฉพาะในใบอนุญาตกรรมสิทธิ์จนถึงเดือนมิถุนายน 2546 เมื่อ Trolltech ออก Qt 3.2 พร้อมการรองรับ Mac OS X ที่มีให้ใช้งานภายใต้ GPL [ 132 ]

ในปี พ.ศ. 2545 สมาชิกของ โครงการ KDE บน Cygwinเริ่มทำการพอร์ตโค้ดเบส Qt/X11 ที่ได้รับอนุญาตภายใต้ GPL ไปยัง Windows [ 133 ]ซึ่งเป็นการตอบสนองต่อการที่ Trolltech ปฏิเสธที่จะอนุญาตให้ใช้ Qt/Windows ภายใต้ GPL โดยให้เหตุผลว่า Windows ไม่ใช่แพลตฟอร์มซอฟต์แวร์โอเพนซอร์สฟรี[ 134 ] [ 135 ]โครงการนี้ประสบความสำเร็จในระดับหนึ่ง แม้ว่าจะไม่ถึงระดับคุณภาพการผลิตก็ตาม

ปัญหานี้ได้รับการแก้ไขเมื่อ Trolltech ออก Qt 4.0 สำหรับ Windows ภายใต้ GPL ในเดือนมิถุนายน พ.ศ. 2548 [ 136 ] Qt 4 รองรับแพลตฟอร์มชุดเดียวกันในเวอร์ชันซอฟต์แวร์เสรี/โอเพนซอร์สเช่นเดียวกับในเวอร์ชันกรรมสิทธิ์ ดังนั้นจึงเป็นไปได้ที่จะสร้างแอปพลิเคชันเสรี/โอเพนซอร์สที่ได้รับอนุญาตภายใต้ GPL โดยใช้ Qt บนแพลตฟอร์มที่รองรับทั้งหมดด้วย Qt 4.0 และเวอร์ชันต่อๆ มา GPL v3 พร้อมข้อยกเว้นพิเศษ[ 137 ] ถูกเพิ่มเข้ามาในภายหลังเป็นตัวเลือกการอนุญาตเพิ่มเติม ข้อยกเว้น GPL อนุญาตให้แอปพลิเคชันสุดท้ายได้รับอนุญาตภายใต้ใบอนุญาต ซอฟต์แวร์เสรี / โอเพนซอร์สต่างๆ ที่ไม่เข้ากันกับ GPL เช่นMozilla Public License 1.1

การเข้าซื้อกิจการโดยโนเกีย

Nokiaเข้าซื้อกิจการ Trolltech ASA เมื่อวันที่ 17 มิถุนายน พ.ศ. 2551 และเปลี่ยนชื่อเป็น Qt Software ก่อน จากนั้นจึงเปลี่ยนเป็น Qt Development Frameworks [ 138 ]

Nokia มุ่งเน้นที่จะเปลี่ยน Qt ให้เป็นแพลตฟอร์มการพัฒนาหลักสำหรับอุปกรณ์ของตน รวมถึงการพอร์ตไปยังแพลตฟอร์มSymbian S60 Nokia Qt SDK เวอร์ชัน 1.0 เปิดตัวเมื่อวันที่ 23 มิถุนายน 2010 [ 139 ]ซอร์สโค้ดมีให้ใช้งานผ่าน Gitorious ซึ่งเป็นที่เก็บซอร์สโค้ด git ที่มุ่งเน้นชุมชน โดยมีเป้าหมายเพื่อสร้างชุมชนที่กว้างขึ้นในการใช้งานและปรับปรุง Qt

เมื่อวันที่ 14 มกราคม พ.ศ. 2552 Qt เวอร์ชัน 4.5 ได้เพิ่มตัวเลือกอีกตัวหนึ่งคือLGPL [ 140 ] เพื่อทำให้ Qt น่าสนใจยิ่งขึ้นสำหรับทั้งโครงการโอเพนซอร์สที่ไม่ใช่ GPL และแอปพลิเคชันแบบปิด[ 141 ]

ในเดือนกุมภาพันธ์ พ.ศ. 2554 โนเกียประกาศการตัดสินใจที่จะยุติเทคโนโลยี Symbian และใช้ แพลตฟอร์ม Windows Phone เป็น พื้นฐานสำหรับสมาร์ทโฟนในอนาคต (และหลังจากนั้นก็ได้ยกเลิกการสนับสนุนแพลตฟอร์มดังกล่าวด้วย) [ 142 ]หนึ่งเดือนต่อมา โนเกียประกาศขายสิทธิ์การใช้งานเชิงพาณิชย์และบริการระดับมืออาชีพของ Qt ให้กับ Digia โดยมีเป้าหมายในทันทีคือการนำการสนับสนุน Qt ไปสู่ แพลตฟอร์ม Android , iOSและWindows 8และยังคงมุ่งเน้นไปที่การพัฒนาเดสก์ท็อปและระบบฝังตัว แม้ว่าโนเกียจะยังคงเป็นกำลังหลักในการพัฒนาเฟรมเวิร์กในขณะนั้นก็ตาม

การควบรวมและการแยกกิจการกับ Digia

ในเดือนมีนาคม พ.ศ. 2554 โนเกียขายส่วนการอนุญาตใช้งานเชิงพาณิชย์ของ Qt ให้กับ Digia ทำให้เกิด Qt Commercial ขึ้น[ 143 ]ในเดือนสิงหาคม พ.ศ. 2555 Digia ประกาศว่าจะซื้อ Qt จากโนเกีย[ 144 ]ทีม Qt ที่ Digia เริ่มงานในเดือนกันยายน พ.ศ. 2555 [ 145 ]พวกเขาปล่อย Qt 5.0 ภายในหนึ่งเดือน และเวอร์ชันใหม่กว่าทุก ๆ หกเดือนพร้อมคุณสมบัติใหม่และแพลตฟอร์มที่รองรับเพิ่มเติม

ในเดือนกันยายน พ.ศ. 2557 Digia ได้โอนธุรกิจและลิขสิทธิ์ของ Qt ให้กับบริษัทลูกที่เป็นเจ้าของทั้งหมดคือ The Qt Company ซึ่งเป็นเจ้าของแบรนด์ 25 แบรนด์[ 146 ]ที่เกี่ยวข้องกับ Qt ในเดือนพฤษภาคม พ.ศ. 2559 Digia และ Qt ได้แยกตัวออกจากกันอย่างสมบูรณ์เป็นสองบริษัทอิสระ[ 147 ]

โครงการ Qt และการกำกับดูแลแบบเปิด

Qt 5 เปิดตัวอย่างเป็นทางการเมื่อวันที่ 19 ธันวาคม 2012 เวอร์ชันใหม่นี้ถือเป็นการเปลี่ยนแปลงครั้งสำคัญในแพลตฟอร์ม โดยกราฟิกที่เร่งความเร็วด้วยฮาร์ดแวร์QMLและJavaScriptมีบทบาทสำคัญ QWidgets แบบดั้งเดิมที่ใช้ C++ เท่านั้นยังคงได้รับการสนับสนุน แต่ไม่ได้รับประโยชน์จากการปรับปรุงประสิทธิภาพที่มีให้ผ่านสถาปัตยกรรมใหม่[ 148 ] Qt 5 นำมาซึ่งการปรับปรุงที่สำคัญในด้านความเร็วและความง่ายในการพัฒนาอินเทอร์เฟซผู้ใช้[ 149 ]

การพัฒนาเฟรมเวิร์กของ Qt 5 ย้ายไปอยู่ภายใต้การกำกับดูแลแบบเปิดที่ qt-project.org ซึ่งทำให้ผู้พัฒนาภายนอก Digia สามารถส่งแพตช์เพื่อขอรับการตรวจสอบได้[ 150 ]

ผู้มีส่วนร่วมใน Qt

การกระจายตัวของผู้ร่วมให้ข้อมูลที่ไม่ใช้ Digia Qt (ปี 2013 สัปดาห์ที่ 18)

นอกเหนือจากบริษัท Qt แล้ว องค์กรและบุคคลจำนวนมากที่ใช้ Qt เป็นแพลตฟอร์มการพัฒนายังมีส่วนร่วมในการพัฒนาแบบเปิดของ Qt ผ่านทางโครงการ Qt [ 151 ]

หนึ่งในผู้มีส่วนร่วมใน Qt ดังกล่าวคือ Klarälvdalens Datakonsult AB ซึ่งเป็นบริษัทที่ปรึกษา Qt ของสวีเดน[ 152 ] KDAB มีส่วนร่วมในหลายด้าน รวมถึงการบำรุงรักษาส่วนประกอบต่างๆ[ 153 ] [ 154 ]

KDAB ร่วมกับRIM/BlackBerryดูแลรักษาพอร์ต Qt สำหรับQNXและBlackBerry 10 [ 151 ] [ 155 ]

ผู้ร่วมสนับสนุนอีกรายคือIntel ซึ่งให้การ สนับสนุนWaylandเป็นต้น[ 156 ] AudioCodes ดูแล รักษาการสนับสนุน IBM ClearCaseในQt Creator [ 157 ]

ในฐานะผู้ใช้งาน Qt อย่างหนัก โครงการ KDEได้ส่งแพตช์และฟีเจอร์มากมายจากไลบรารีสำหรับนักพัฒนาKDE Frameworksกลับไปยัง Qt [ 158 ]

ดูเพิ่มเติม

บรรณานุกรม

Qt Wiki มีรายชื่อหนังสือภาษาอังกฤษเกี่ยวกับ Qt อย่างครบถ้วน[ 159 ]นี่คือรายชื่อหนังสือที่น่าสนใจ:

  • บ็อคเลจ-ไรอันเนล, เยอร์เก้น; เทลิน, โยฮาน (12 พฤษภาคม 2558). "Qt 5 Cadaques" (ฉบับพิมพ์ครั้งที่ 1)
  • Blanchette, Jasmin; Summerfield, Mark (14 กุมภาพันธ์ 2551). การเขียนโปรแกรม GUI ด้วย C++ โดยใช้ Qt 4 (ฉบับที่ 2). Prentice Hall . ISBN 978-0-13-235416-5.
  • ซัมเมอร์ฟิลด์, มาร์ค (23 สิงหาคม 2553). การเขียนโปรแกรม Qt ขั้นสูง: การสร้างซอฟต์แวร์ที่ยอดเยี่ยมด้วย C++ และ Qt 4 (ฉบับพิมพ์ครั้งที่ 1). แอดดิสัน-เวสลีย์ . ISBN 978-0-321-63590-7.
  • ฟิตเซค, แฟรงค์ เอชพี; มิคโคเนน, ทอมมี่; ทอร์ป, โทนี่ (17 พฤษภาคม 2553). Qt สำหรับ Symbian (ฉบับพิมพ์ครั้งที่ 1) ไวลีย์ . ไอเอสบีเอ็น 978-0-470-75010-0เก็บถาวรจากต้นฉบับเมื่อวันที่ 19 ธันวาคม 2552
  • ซัมเมอร์ฟิลด์, มาร์ค (28 ตุลาคม 2550). การเขียนโปรแกรม GUI อย่างรวดเร็วด้วย Python และ Qt (ฉบับพิมพ์ครั้งที่ 1). สำนักพิมพ์ Prentice Hall . ISBN 978-0-13-235418-9.
  • มอลเคนติน, แดเนียล (19 กรกฎาคม 2550). หนังสือ Qt 4: ศิลปะแห่งการสร้างแอปพลิเคชัน Qt (ฉบับพิมพ์ครั้งที่ 1). สำนักพิมพ์โน สตาร์ช . ISBN 978-1-59327-147-3เก็บถาวรจากต้นฉบับเมื่อวันที่ 26 มิถุนายน 2558 เรียกดูเมื่อวันที่ 18 มิถุนายน 2558
  • เทลิน, โยฮาน (3 สิงหาคม 2550) รากฐานของการพัฒนา Qt (ฉบับพิมพ์ครั้งที่ 1) เอเพรสไอเอสบีเอ็น 978-1-59059-831-3เก็บถาวรจากต้นฉบับเมื่อวันที่ 20 มกราคม 2558 เรียกดูเมื่อวันที่ 18 มิถุนายน 2558
  • ดัลไฮเมอร์, แมทเธียส (มกราคม 2545) การเขียนโปรแกรมด้วย Qt (ฉบับที่ 2) โอ ไรลี ย์มีเดียไอเอสบีเอ็น 978-0-596-00064-6.
  • Ezust, Alan; Ezust, Paul (10 กันยายน 2549). บทนำเกี่ยวกับรูปแบบการออกแบบใน C++ ด้วย Qt 4 (ฉบับที่ 2). Prentice Hall . ISBN 978-0-13-187905-8.
  • เว็บไซต์อย่างเป็นทางการแก้ไขข้อมูลนี้ได้ที่วิกิดาต้า
  • "การเต้น Qt 4" (วิดีโอ) . YouTube . 11 สิงหาคม 2549. เก็บถาวรจากต้นฉบับเมื่อ 11 ธันวาคม 2564 . เรียกดูเมื่อ7 กันยายน 2558 .
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Qt_(software)&oldid=1357514791 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ Qt (ซอฟต์แวร์)

Qt ( /ˈkjuːt/ออกเสียงว่า "cute" ) เป็นเฟรมเวิร์กการพัฒนาแอปพลิเคชันข้ามแพลตฟอร์มสำหรับการสร้างอินเทอร์เฟซผู้ใช้แบบกราฟิกรวมถึง แอปพลิ...

จุดประสงค์และความสามารถ

Qt ใช้สำหรับการพัฒนา อินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) และ แอปพลิเคชัน แบบหลายแพลตฟอร์ม ที่ทำงานบนแพลตฟอร์ม เดสก์ท็อป หลักทั้งหมดรวมถึงแพลตฟอร์มมือถือหรือแบบฝังตัว โปรแกรม GUI ส่วนใหญ่ที่สร้างด้วย Qt มีอินเทอร์เฟซที่ดูเหมือนเนทีฟ ซึ่งในกรณีนี้ Qt...

การเผยแพร่

เวอร์ชันล่าสุดของ Qt Framework คือ Qt 6.11 ซึ่งวางจำหน่ายเมื่อวันที่ 23 มีนาคม พ.ศ. 2569 [ 16 ]

Qt กำลังใช้งาน

ในปี 2017 บริษัท Qt ประเมินว่ามีชุมชนนักพัฒนาประมาณ 1 ล้านคนทั่วโลก [ 18 ] ในกว่า 70 อุตสาหกรรม [ 19 ]