Qt คืออะไร

Qt คืออะไร

qt-logo

Qt (อ่านว่า คิวต์) เป็นเครื่องมือในการสร้างแอปพลิเคชั่น และ GUI ซึ่งสามารถทำงานบน  Desktop PC , Smart Phone  และ Embedded System สามารถทำงานได้หลายระบบปฏิบัติการ(OS) หรือ เรียกว่า Cross-platform แปลความได้ว่า เมื่อเรามีโปรแกรมที่ทำงานบน OS หนึ่ง เราไม่จำเป็นต้องเขียนโปรแกรมใหม่ สามารถนำโปรแกรมไป Compile  เพื่อให้สามารถทำงานบน OS อื่นได้โดยไม่ต้องแก้โปรแกรมเลย เมื่อโปรแกรมทำงาน หน้าตาของมันจะเปลี่ยนไปตามสิ่งแวดล้อมของ OS นั้น ๆ โดยอัตโนมัติ

การเขียน GUI ให้กับแอพพลิเคชันหรือระบบต่าง ๆ ในปัจจุบัน มีทางเลือกหลายทางในการพัฒนา มีเครื่องมือหลายตัวให้เลือกใช้ เช่น VC# และ VB .NET บน WIN CE เป็นต้น แต่สำหรับ Qt แล้ว ถือว่าเป็นอีกทางเลือกหนึ่งที่น่าสนใจ เพราะ สามารถเลือกใช้ API, Library ต่าง ๆ ซึ่งมีมากมายได้เช่นกัน (เปรียบเทียบได้กับ MSDN จาก Microsoft แต่เป็น Opensource) ไม่จำเป็นต้องเริ่มตั้งต้นใหม่ ซึ่งเสียเวลาโดยเปล่าประโยชน์

Qt จะมี API และ Library ต่าง ๆ ที่เขียนด้วยภาษา C++ ทำให้สามารถพัฒนาแอพพลิเคชั่นแบบ GUI และ ยังสนับสนุนการพัฒนาทั้ง C++, Java, Python, Perl, Pascal และ PHP ทั้งนี้ก็ขึ้นอยู่กับผู้พัฒนาว่าจะเลือกใช้ภาษาใดในการพัฒนา

ความสามารถที่นอกเหนือจากส่วนต่อประสาน งานกราฟฟิคกับผู้ใช้ เช่น การติดต่อกับฐานข้อมูลSQL การอ่านข้อมูลXML การบริหารThreadด้านเครือข่าย และการจัดการไฟล์

ปัจจุบัน Qt ถูก Nokia นำมาใช้ในการออกแบบผลิตภันฑ์ ที่เน้นให้แอปพลิเคชั่นสามารถทำงานได้หลายระบบปฏิบัติการ ที่อยู่บนโทรศัพท์มือถือ อุปกรณ์เคลื่อนที่ (Mobile device) ต่างๆ ได้ เช่น อุปกรณ์นำทางบนรถยนต์, แทปเลสพีซี (Tables PC)

ตัว Software ที่ใช้ในการพัฒนา เป็นตัวฟรี แต่จะถูกจำกัดบางประการ ซึ่ง License ของ Qt มีทั้งหมด 3 แบบ คือ

1)    Commercial ไม่จำเป็นต้อง open source โปรแกรมที่เราเขียน รวมทั้งในกรณีที่มีการแก้ไข base library ของ Qt และได้รับการ Support การพัฒนาจาก Nokia แต่จะต้องเสียค่า License ให้กับทาง Nokia

2)    LGPL = Lesser GPL เป็นชื่อเอกสารการให้สิทธิ์สู่สาธารณะที่คลายข้อจำกัดบางข้อของ GPL ไม่จำเป็นต้อง open source โปรแกรมที่เราเขียน เอาไปขายได้ แต่ต้องระบุอย่างชัดเจนว่าเราเอา software อะไรมาพัฒนาบ้าง ตัวอย่าง open source ประเภทนี้คือ LAME (โมดูลแปลงไฟล์เสียงเป็น mp3 ยอดนิยม) และ software ตัวใหม่ไม่จำเป็นต้องติด LGPL ไม่บังคับว่าโปรแกรมที่เรียกใช้ library ที่เป็น LGPL จะต้องเป็น LGPL ไปด้วย แต่อย่างไรก็ตาม ส่วนที่เป็น LGPL ก็ยังต้องคงความเป็น LGPL ไว้ คือ open source ไปให้ผู้รับด้วย

3)    GNU General Public License (GNU GPL หรือ GPL) เป็นสัญญาอนุญาตสำหรับซอฟต์แวร์เสรี ที่ได้รับความนิยมสูงที่สุดในปัจจุบัน ฉบับแรกสุดเขียนโดยริชาร์ด สตอลแมน เริ่มต้นใช้สำหรับโครงการกนู ในปี พ.ศ. 2534 (ค.ศ. 1991) สัญญาอนุญาต GPL ในปัจจุบันเป็นรุ่นที่ 2 นอกจากนี้มีสัญญาอนุญาต GNU Lesser General Public License (LGPL) ที่พัฒนาแยกออกมาจาก GPL ในอีกรูปแบบหนึ่งเพื่อใช้สำหรับไลบรารีซอฟต์แวร์

ลักษณะของสัญญาอนุญาต GPL มีลักษณะ “เสรี” ดังนี้-เสรีภาพในการใช้งาน ไม่ว่าใช้สำหรับจุดประสงค์ใด

– เสรีภาพในการศึกษาการทำงานของโปรแกรม และแก้ไขโค้ด
– เสรีภาพในการจำหน่ายโปรแกรม
– เสรีภาพในการปรับปรุงและเปิดให้บุคคลทั่วไปใช้และพัฒนาต่อไป
– โดยมีเพียงเงื่อนไขว่า การนำไปใช้หรือนำไปพัฒนาต่อ จำเป็นต้องใช้สัญญาอนุญาตเดียวกันความแตกต่างระหว่างสัญญาอนุญาต GPL และสัญญาอนุญาต BSD (สัญญาอนุญาตที่นิยมอีกตัวหนึ่งสำหรับซอฟต์แวร์เสรี) คือสัญญาอนุญาต GPL ครอบคลุมถึงซอฟต์แวร์ทั้งที่อยู่ในรูปของต้นฉบับ มีการดัดแปลง หรือรวมเป็นส่วนหนึ่งของซอฟต์แวร์อื่น โดยบุคคลที่นำซอฟต์แวร์ไปใช้พรือพัฒนาต่อจำเป็นต้องเผยแพร่โดยใช้สัญญา อนุญาตเดียวกัน ในขณะที่สัญญาอนุญาต BSD เปิดกว้างมากกว่า ผู้ที่ไปพัฒนาต่อไม่ต้องเปิดเผยซอร์สโค้ดของโปรแกรม มีเพียงข้อความเจ้าของสัญญาอนุญาตเดิมเท่านั้นที่ต้องแสดง 

Qt สามารถทำงานได้บนระบบปฏิบัติการ Maemo, Meego, Embedded Linux, Ubuntu, Andriod

ที่มา วิกิพีเดียNokiaKobchai Niyomthum (Blog)Eakkasit(Blog)

ตัวอย่างโปรแกรม Embedded Widgets and Demos จากเว็บไซด์ Qt