Qt

**Qt** (cách phát âm chính thức tương tự như từ *cute* */ˈkjuːt/* trong tiếng Anh), 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. Qt có sẵn theo cả giấy phép thương mại  nguồn mở. và giấy phép GPL 2.0, GPL 3.0 và LGPL 3.0 nguồn mở

## Lịch sử
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.

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
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.

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
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.  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, Linux và Android.

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. 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
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ư:
* LyX: phần mềm soạn thảo văn bản LaTeX
* Quantum GIS: phần mềm hệ thống thông tin địa lý
* QCad: phần mềm vẽ kĩ thuật
* Scribus: phần mềm xuất bản điện tử
* Skype: phần mềm giao tiếp qua mạng internet.
Một thống kê đầy đủ  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

## Đọc thêm

* Mark Sommerfield, 2007. *Rapid GUI Programming with Python and Qt*. Prentice Hall, 628 tr.