Qt là một Application Framework. Mục tiêu của các nhà phát triển nên Qt chính là tạo ra một framework có khả năng thiết kế những phần mềm có thể chạy trên nhiều nền tảng phần mềm lẫn phần cứng khác nhau mà không phải thay đổi nhiều về code. Qt không chỉ là thứ giúp bạn viết giao diện cho phần mềm của mình, nó có đầy đủ các khía cạnh để tạo nên một phần mềm hoàn chỉnh ở nhiều góc độ, cho dù phần mềm đó có giao diện hay không. Bạn có thể dùng Qt viết ra những phần mềm chạy bằng dòng lệnh, hoặc là các ứng dụng console chạy trên server, thậm chí là các web framework,….
Lịch sử các công ty phát triển Qt:
Trolltech (1991 – 2008)
Nokia (2008 – 2011)
Digia (2012 – 2014)
Qt Project (2011 – nay) cùng phát triển bản Qt mã nguồn mở, được Nokia thành lập, sau này nhân sự và công nghệ về mảng này đều được Digia mua lại và quản lý
Hiện tại Qt Company đã được thành lập (Digia + Qt Project) để thống nhất phát triển cho Qt.
Module | Description |
---|---|
Qt Core | Chứa các thành phần cơ sở, bao gồm các containers (tương tự thư viện chuẩn của các ngôn ngữ lập trình: QVector, QList, QMap,…), các thư viện nhập xuất đa nền tảng, lập trình đa luồng (threading) và xử lý song song (concurrency),…. |
Qt GUI | Thành phần chính để lập trình giao diện. |
Qt Widgets | Các widget. Button, hộp thoại và những thứ tương tự trong giao diện đều gọi là các widget. |
Qt QML | Hỗ trợ cho QML và Javascript. QML (dựa trên Javascript) là một ngôn ngữ để viết giao diện cho ứng dụng Qt, bên cạnh ngôn ngữ lập trình chính C++. |
Qt Quick | QML là một phần của Qt Quick. |
Qt Quick Controls | Các widget điều khiển dành cho Qt Quick (chủ yếu dành cho desktop). |
Qt Quick Layouts | Bố trí các widget trong Qt Quick. |
Qt Network | Network abstraction layer (NAL – lớp trừu tượng cho network). Đầy đủ các giao thức TCP, UDP, HTTP và SSL. |
Qt Multimedia | Thư viện về âm thanh, hình ảnh, camera,…. |
Qt Multimedia Widgets | Các widget dành cho Qt Multimedia. |
Qt SQL | Module làm việc với cơ sở dữ liệu (ngôn ngữ SQL). |
Qt WebKit | WebKit (phát triển bởi Apple, Adobe và một số công ty khác) là một module cho các web browser (Safari và Google Chrome,…) dùng để hiển thị các trang web. Qt WebKit là một thư viện giúp bạn làm việc với WebKit. |
Qt WebKit Widgets | Các widget cho Qt WebKit. |
Qt Test | Hỗ trợ Unit Test cho các ứng dụng Qt. |
CHTDocTOOLkit 2014: phần mềm này dành cho những hosting muốn public các tài liệu dạng PDF để client có thể dễ dàng đọc được từ máy tính hoặc thiết bị android, ưu điểm của nó là load tài liệu nhanh và tiết kiệm dữ liệu truyền tải cho host.
https://github.com/zer0-x/CHTDocTOOLkit
MbatchSplit: ứng dụng cắt video hàng loạt, nó có thể cắt các video với tốc độ rất cao. Ứng dụng này do một cá nhân đặt hàng mình làm nên mình chưa thể share code được.
Theo mình được biết thì Skype được lập trình bằng Qt, ngoài ra bạn có thể vào folder của các game EA (battlefield,…) thì sẽ thấy một phần mềm support đi kèm được viết bằng Qt4. Ở Việt Nam thì Qt cũng được Soha dùng để tạo ra phần mềm xem phim online của họ (hiện tại thì Soha Phim đã dừng hoạt động), ngoài ra VirtualBox, FShare Tool và VLC cũng là các phần mềm được sử dụng Qt.
Học lập trình Qt không hề khó, bởi những kiến thức cần chỉ là lập trình C++ và lập trình hướng đối tượng là đã có thể bắt đầu, về các thư viện và cú pháp của Qt thì đã có sẵn tài liệu và dễ dàng tra cứu, các tutorials dưới đây chỉ mang ý nghĩa dẫn nhập để người học tìm đúng con đường rèn luyện kỹ năng lập trình C++ OOP và lập trình giao diện. Tùy từng yêu cầu dự án khác nhau mà có thể dùng Qt hoặc các framework tương tự, nhưng kỹ năng làm việc vẫn luôn là giống nhau. Mong rằng người học sẽ tìm thấy những gì mình cần trong những tutorials này.
Manh
April 17, 2015
Qt C++ Programming