Qt (cách phát âm chính thức tương tự như từ cute /ˈkjuːt/ trong tiếng Anh[6][7][8]), một kiểu phát âm phổ biến khác là Q.T. /ˌkjuːˈtiː/) là một khung ứng dụng đa nền tảng và bộ công cụ tiện ích để tạo giao diện người dùng đồ họa cổ điển và nhúng, và các ứng dụng chạy trên nhiều nền tảng phần mềm và phần cứng khác nhau hoặc ít thay đổi trong codebase cơ bản, trong khi vẫn là một ứng dụng gốc với khả năng và tốc độ cục bộ. Qt hiện đang được phát triển bởi cả The Qt Company, một công ty niêm yết công khai, và Qt Project dưới quản lý mã nguồn mở, liên quan đến các nhà phát triển cá nhân và các công ty làm việc để thúc đẩy Qt.[9][10][11] Qt có sẵn theo cả giấy phép thương mại nguồn mở.[3] và giấy phép GPL 2.0, GPL 3.0 và LGPL 3.0[4] nguồn mở[4]

Qt
Thiết kế bởiHaavard Nord và Eirik Chambe-Eng[1]
Phát triển bởi
Phát hành lần đầu20 tháng 5 năm 1995; 29 năm trước (1995-05-20)[1]
Phiên bản ổn định
6.7.1
Kho mã nguồn
Viết bằngC++
Hệ điều hànhAndroid, iOS, Linux (Embedded, Wayland, X11), macOS, Windows, Windows Phone, [2]
Nền tảngĐa nền tảng
Thể loạiWidget toolkitApplication framework
Giấy phépQt Commercial License[3]
GPL 2.0, 3.0[4]
LGPL 3.0[5]
Websitewww.qt.io http://qt.nokia.com/
Trạng tháiĐang phát triển
Qt Designer - phần mềm thiết kế giao diện bằng các khiển tố của Qt.

Lịch sử

sửa

Ban đầu Qt ra đời như một sản phẩm thương mại và cũng được dùng để viết môi trường KDE, nhưng về sau được bổ sung giấy phép LGPL, theo đó có thể được sử dụng tự do để phát triển các phần mềm nguồn mở hay đúng hơn là có thể sử dụng trong các phần mềm thương mại nếu muốn. Bản quyền thương mại của Qt hiện nay đã được chuyển qua hình thức thu phí hỗ trợ. Bạn có thể dùng Qt như một thư viện để viết phần mềm thương mại, nếu có sửa đổi nào trong bộ nguồn chính của Qt thì bạn phải cung cấp mã nguồn đã sửa ra chứ không yêu cầu phải mở toàn bộ mã nguồn hay phải mua giấy phép thương mại như trước kia [12].

Cũng có ý kiến cho rằng đây là cái bẫy của Qt, nhưng cũng có ý kiến cho rằng Nokia cần khuếch trương thương hiệu để làm nền tảng cho di động hơn là thu vài đồng lẻ từ phí bản quyền bộ thư viện Qt. Nếu bạn muốn yên tâm hơn khi viết phần mềm thương mại thì có thể lựa chọn thêm wxWidgets, tuy nhiên do là dự án cá nhân của một bác sĩ và cộng đồng không có lợi nhuận nhiều nên không phát triển và hỗ trợ tốt như của Qt.

Phiên bản mới Qt 4.7 sắp được phát hành sẽ bao gồm Qt Quick, kĩ thuật giao diện người dùng (UI) mới cho phép tạo các ứng dụng có chuyển động và được điều khiển bằng tay chạm. Ngoài ra, còn có bản cập nhật của Qt WebKit.

Công ty Trolltech, trước đây phát triển Qt, hiện được sáp nhập vào tập đoàn Nokia.

Mục đích và khả năng

sửa

Qt được sử dụng để phát triển giao diện người dùng đồ họa (GUI) và các ứng dụng đa nền tảng chạy trên tất cả các nền tảng máy tính để bàn lớn và hầu hết các nền tảng di động hoặc nhúng. Hầu hết các chương trình GUI được tạo bằng Qt đều có giao diện tự nhiên, trong trường hợp này Qt được phân loại là widget toolkit. Ngoài ra các chương trình không phải GUI cũng có thể được phát triển, chẳng hạn như các công cụ dòng lệnh và consoles cho server. Một ví dụ về một chương trình không phải GUI sử dụng Qt là khung công tác web Cutelyst.[13]

Qt hỗ trợ các trình biên dịch khác nhau, bao gồm trình biên dịch GCC C++ và bộ Visual Studio và có hỗ trợ quốc tế hóa rộng rãi. Qt cũng cung cấp Qt Quick, bao gồm một ngôn ngữ kịch bản lệnh được gọi là QML cho phép sử dụng JavaScript để cung cấp logic. Với Qt Quick, việc phát triển ứng dụng nhanh chóng cho các thiết bị di động trở nên khả thi, trong khi logic vẫn có thể được viết bằng mã gốc để đạt được hiệu suất tốt nhất có thể.

Các tính năng khác bao gồm truy cập cơ sở dữ liệu SQL, phân tích cú pháp XML, phân tích cú pháp JSON, quản lý luồng và hỗ trợ mạng.

Bản phát hành Qt

sửa

Phiên bản mới nhất là Qt 5.12, được phát hành vào tháng 11 năm 2018.[14] Nó đi kèm với một số tính năng mới bao gồm hỗ trợ Vulkan ban đầu cho Windows, LinuxAndroid.[15]

Phiên bản LTS hiện tại là Qt 5.9 LTS. Nó được phát hành vào ngày 31 tháng 5 năm 2017 và sẽ được hỗ trợ trong 3 năm cho đến ngày 31 tháng 5 năm 2020.[16] Bản phát hành đầu tiên của phần mềm Qt là vào ngày 20/5/1995. Bản phát hành ổn định mới nhất của phiên bản phần mềm qt 5.11.2 là vào ngày 20 tháng 9 năm 2018.

Các ứng dụng xây dựng bằng Qt

sửa

Hiện nay có nhiều phần mềm tự do được phát triển dựa trên Qt, chẳng hạn như:

Một thống kê đầy đủ [17] cho thấy Qt không chỉ xuất hiện trong máy tính mà còn trong các thiết bị nhúng và đồ điện gia dụng.

Tham khảo

sửa
  1. ^ a b Lỗi chú thích: Thẻ <ref> sai; không có nội dung trong thẻ ref có tên oreilly-qt
  2. ^ “Supported Platforms”.
  3. ^ a b “Licenses”.
  4. ^ a b c “New agreement with the KDE Free Qt Foundation and changes for the open source version”. The Qt Company.
  5. ^ “Adding LGPL v3 to Qt”. ngày 20 tháng 8 năm 2014.
  6. ^ “Qt - About Us”. Bản gốc lưu trữ ngày 22 tháng 2 năm 2017.
  7. ^ “That Smartphone Is So Qt”. Ashlee Vance. ngày 16 tháng 2 năm 2010. Truy cập ngày 19 tháng 2 năm 2010.
  8. ^ “The Qt 4 Dance” (video). Truy cập ngày 7 tháng 9 năm 2015.
  9. ^ Pintscher, Lydia (ngày 21 tháng 10 năm 2011). “KDE Applauds Qt's Move to Open Governance”. KDE.News. Truy cập ngày 8 tháng 5 năm 2013.
  10. ^ Meyer, David (ngày 24 tháng 10 năm 2011). “Nokia gives Qt open-source governance”. ZDNet. Truy cập ngày 8 tháng 5 năm 2013.
  11. ^ Knoll, Lars (ngày 6 tháng 8 năm 2014). “Defragmenting Qt and Uniting Our Ecosystem”.
  12. ^ “Chi tiết so sánh các giấy phép của Qt”. Bản gốc lưu trữ ngày 16 tháng 5 năm 2012. Truy cập ngày 10 tháng 11 năm 2010.
  13. ^ “Cutelyst - Home”.
  14. ^ Heikkinen, Jani (ngày 22 tháng 5 năm 2018). “Qt 5.11 Release”. The Qt Company. Truy cập ngày 1 tháng 6 năm 2018.
  15. ^ Heikkinen, Jani (ngày 2 tháng 6 năm 2017). “New Features in Qt 5.10”. The Qt Company. Truy cập ngày 8 tháng 6 năm 2017.
  16. ^ Leppälä, Kimmo (ngày 7 tháng 6 năm 2017). “Renewed Qt Support Services”. Qt Project. Truy cập ngày 8 tháng 6 năm 2017.
  17. ^ “Ứng dụng của Qt”. Bản gốc lưu trữ ngày 18 tháng 3 năm 2009. Truy cập ngày 24 tháng 3 năm 2009.

Đọc thêm

sửa
  • Mark Sommerfield, 2007. Rapid GUI Programming with Python and Qt. Prentice Hall, 628 tr.