inflearn logo

[Cơ bản] Lập trình QML – Phần 1

QML là một ngôn ngữ lập trình dùng để tạo giao diện người dùng do Qt cung cấp. Nó tương tự JSON và có thể sử dụng JavaScript. Bằng cách sử dụng QML thay vì ngôn ngữ C++, bạn có thể dễ dàng phát triển giao diện người dùng hiện đại, cao cấp mà không cần sử dụng C++.

(4.8) 18 đánh giá

169 học viên

Độ khó Cơ bản

Thời gian 4 tháng

Qt
Qt
QML
QML
Qt
Qt
QML
QML

Đánh giá từ những học viên đầu tiên

4.8

5.0

Junghwan Jeong

100% đã tham gia

Nó rất hữu ích trong việc tìm ra cách sử dụng QML trong tương lai. Trong tương lai, sẽ rất hữu ích nếu có được bí quyết nếu có một chương trình giảng dạy chọn một nội dung thực tế và thực hiện toàn bộ quy trình.

5.0

이준현

32% đã tham gia

Tôi đang học lại và cảm thấy rất tốt. Tôi đang ôn tập lại những kiến thức đã học trước đó nhưng bị quên. Đây là bài giảng về Qt hay đến mức đáng để học lại lần nữa.

5.0

White

64% đã tham gia

Kích thước chữ trên màn hình có vẻ lớn hơn rồi? Tốt đấy

Bạn sẽ nhận được điều này sau khi học.

  • Phát triển UI hiện đại bằng QML

  • Phát triển UI bằng QML và C++

QML dành cho phát triển UI Qt,
hướng dẫn chi tiết từ nhập môn đến thực hành.

Hiện thực UI bằng framework Qt, 
mạnh mẽ hơn với QML!

Ngôn ngữ lập trình QML?

Đây là một ngôn ngữ lập trình cho phép phát triển giao diện người dùng hiện đại, cao cấp trong Qt Framework
một cách dễ dàng.

QML(Qt Modeling Language) là ngôn ngữ lập trình do framework Qt cung cấp. QML là ngôn ngữ lập trình có thể sử dụng để phát triển UI trong framework Qt, nhằm dễ dàng triển khai các UI hiện đại, cao cấp.

Khi phát triển chương trình GUI bằng framework Qt, có thể phân biệt logic thiết kế của phần UI và logic chức năng của phần chức năng. Trong số đó, QML là ngôn ngữ có thể được lựa chọn thay thế cho C++ khi phát triển UI tương ứng với logic thiết kế. Đặc biệt, khi phát triển UI bằng QML, có thể tách biệt hoàn toàn logic thiết kế và logic chức năng, từ đó nâng cao khả năng tái sử dụng mã nguồn.

Nếu sử dụng QML để phát triển logic thiết kế, bạn có thể triển khai UI dễ dàng và nhanh chóng hơn nhiều so với khi sử dụng C++. Ngoài ra, bạn cũng có thể dễ dàng áp dụng các công nghệ GUI hiện đại và cao cấp như Flickable, Gesture, Animation, 3D.


Cú pháp dễ hiểu, khả năng đọc ngắn gọn
Hãy trải nghiệm những ưu điểm của QML.

Hãy cùng xem xét ví dụ in “Hello World” thường được thực hiện khi mới bắt đầu học một ngôn ngữ lập trình nhé? Bạn có thể dễ dàng nhận thấy QML là một ngôn ngữ cô đọng đến mức nào.

import QtQuick

Window {
    width: 300
    height: 200
    visible: true
    title: qsTr("QML 예제소스코드")

    Text {
        x: 80
        y: 70
        text: "Hello World"
        font.pixelSize: 25
    }
}

Mã nguồn ví dụ QML

Màn hình chạy mã nguồn ví dụ QML

QML rất dễ dàng và đơn giản. Ngay cả những người không phải là nhà phát triển cũng có thể dễ dàng hiểu được. Do đó, các nhà thiết kế và nhà phát triển có thể giao tiếp với nhau và chia sẻ ý tưởng bằng mã QML.

Vì vậy, với QML, nhà thiết kế và nhà phát triển có thể hợp tác bằng cách cùng sử dụng một công cụ phát triển, từ đó rút ngắn thời gian phát triển so với trước.


Nhập môn lập trình QML 
Khóa học này phù hợp với những ai 🙋‍♀️

1️⃣

Những người (lập trình viên, nhà thiết kế) muốn dễ dàng triển khai UI/UX hiện đại, cao cấp bằng QML trong Qt

2️⃣

Những người muốn nâng cao khả năng bảo trì và tái sử dụng mã nguồn bằng cách tách biệt logic thiết kế và logic chức năng

✅

Bạn chỉ có thể học khóa học này khi đã hiểu kiến thức cơ bản về ngôn ngữ C++ và framework Qt với tư cách là kiến thức tiên quyết.

Mục tiêu khóa học 💡

  • Bạn có thể học cách phát triển UX/UI hiện đại và cao cấp bằng QML.
  • Bạn có thể học cách phân tách hoàn toàn logic thiết kế và logic chức năng khi sử dụng QML.
  • Bằng cách học lý thuyết theo từng phần và trực tiếp viết mã tập trung vào nhiều ví dụ thực tế khác nhau, bạn có thể tự nhiên học được năng lực phát triển QML cần thiết trong công việc.

Hãy
khám phá những điểm đặc trưng riêng của khóa học này 📖

Lý thuyết và thực hành trong một khóa học duy nhất

Khóa học được xây dựng để bạn có thể nâng cao cả năng lực thực tiễn bên cạnh ngữ pháp QML. Sau khi học lý thuyết ở từng phần, bạn sẽ được thực hành trực tiếp theo bài giảng qua các ví dụ thực tế, từ đó nâng cao kỹ năng làm việc thực tiễn.

Vượt qua rào cản trực tuyến

Hình ảnh người chia sẻ kiến thức cũng được đưa vào màn hình bài giảng. Hãy học mọi lúc, mọi nơi với cảm giác như đang tham gia lớp học trực tiếp thông qua các buổi học được tiến hành cùng phần live coding sống động.

 


Cấu trúc bài giảng 📖

Phần 1. QML là gì
QML là ngôn ngữ thông dịch do Qt Framework cung cấp. Trong phần này, chúng ta sẽ tìm hiểu QML có những đặc điểm và ưu điểm gì.

Phần 2. Cú pháp và cấu trúc của QML
Học về cấu trúc và cú pháp của QML. Đây là phần học cách sử dụng QML thông qua các ví dụ thực hành.
Phần 3. Type
Type là một khái niệm tương tự như QWidget của Qt. Trong phần này, bạn sẽ tìm hiểu Type là gì và tập trung học các Type thường được sử dụng trong số các Type mà QML cung cấp. Ngoài ra, bạn sẽ thực hành triển khai Type nút bằng Type Accessible thông qua ví dụ thực hành.

Phần 4. Events 
Đây là phần học cách triển khai xử lý các Event phát sinh trên giao diện người dùng, chẳng hạn như thao tác chạm, chuột và bàn phím. Ngoài ra, bạn sẽ học cách triển khai Signal trong QML. Trong ví dụ thực hành, bạn sẽ tìm hiểu chi tiết cách xử lý Signal thông qua ví dụ kết nối Signal với Method (hàm). 

Phần 5. Triển khai Dynamic UI bằng Loader type
Bạn sẽ học cách để người dùng thay đổi động một khu vực cụ thể trong UI. Ví dụ, khi một điều kiện cụ thể được đáp ứng trên màn hình GUI A, bạn sẽ học cách chuyển sang màn hình B. Vì vậy, thông qua phần này, bạn sẽ học cách triển khai màn hình một cách động. Trong bài thực hành cuối cùng, bạn sẽ tìm hiểu cách sử dụng kiểu Loader để thay đổi màn hình một cách động thông qua một ví dụ.

Phần 6. Canvas 
Tìm hiểu các phương pháp hiển thị hình ảnh, đường kẻ, hình dạng và văn bản trên màn hình giống như trong ứng dụng vẽ. Chúng ta sẽ tìm hiểu một ví dụ cho phép chọn Color để vẽ trên bảng vẽ.

Phần 7. Hiệu ứng đồ họa
Tìm hiểu cách sử dụng các hiệu ứng như Blur, Blend, Color trên hình ảnh.

Phần 8. Lập trình module
Học cách mô-đun hóa các module thường được sử dụng trên GUI như nút và hộp combo, cũng như cách mô-đun hóa các Type do người dùng định nghĩa. Đồng thời, thông qua các ví dụ thực hành trực tiếp, bạn sẽ tìm hiểu cách mô-đun hóa QML để triển khai.

Phần 9. Sử dụng JavaScript trong QML
Học cách sử dụng các hàm JavaScript trong QML. Đồng thời, tìm hiểu cách Import tệp JavaScript trong QML. Trong ví dụ thực hành, bạn có thể tìm hiểu chi tiết cách sử dụng JavaScript thông qua việc triển khai một máy tính.

Phần 10. Dialog
Tìm hiểu cách sử dụng dialog trong QML. Thông qua ví dụ thực hành tự triển khai một dialog để chọn Color, bạn có thể học cách sử dụng dialog.

Phần 11. Layout 
Trong QML, ngoài Anchors, bạn còn có thể sử dụng các Layout như RowLayout, ColumnLayout, GridLayout và Layout. Trong bài học này, chúng ta sẽ tìm hiểu cách sử dụng nhiều loại Layout khác nhau.

Mục 12. Type Positioning 
Type Positioning là phương pháp hiển thị các Type trên màn hình. Ví dụ, tìm hiểu cách sắp xếp các Type theo chiều ngang, chiều dọc hoặc theo dạng bàn cờ.

Phần 13. Qt Quick Controls 
Qt Quick Controls cung cấp các giao diện GUI cần thiết để xây dựng màn hình, chẳng hạn như Button, Dial, CheckBox, BusyIndicator, v.v. Trong phần này, bạn sẽ học cách sử dụng Qt Quick Controls.


Hỏi & Đáp 💬

 

Q. Ngoài lý thuyết và cú pháp, tôi có thể tham khảo nhiều ví dụ được sử dụng trong thực tế không?

Có. Điều đó hoàn toàn khả thi. Sau phần học lý thuyết ở mỗi mục, khóa học có các bài thực hành lập trình cùng giảng viên thông qua những ví dụ cụ thể, giúp bạn học được cả những bí quyết khi lập trình QML thực tế trong công việc.

Q. Có tài liệu hoặc giáo trình nào để tham khảo về nội dung khóa học không?

Tôi đang hoạt động với tư cách quản trị viên tại cộng đồng nhà phát triển Qt (qt-dev.com). Bạn có thể tìm thấy thông tin liên quan đến Qt và QML trên trang web này.

Q. Có điều gì cần học trước khi tham gia khóa học không?

Đây là khóa học dành cho những người đã có kiến thức cơ bản về C++ và Qt. Nếu chưa có kinh nghiệm về Qt, bạn nên học trước khóa học “Lập trình Qt” trước khi tham gia khóa học này.

Hỏi: Nội dung khóa học bao quát đến trình độ nào?

Khóa học bao quát từ kiến thức cơ bản về QML đến các nội dung nâng cao thuộc nhiều lĩnh vực ứng dụng khác nhau.

💾 Ghi chú tham khảo

  • Để biết thêm chi tiết, vui lòng xem bài học ở phần 1 đã được công khai trong bản xem trước [Giải thích về tài liệu tham khảo QML và phiên bản Qt được khuyến nghị để học QML].

Khuyến nghị cho
những người này

Khóa học này dành cho ai?

  • Những người muốn phát triển UI bằng QML

  • Những người muốn phát triển giao diện người dùng bằng QML trong framework Qt

Cần biết trước khi bắt đầu?

  • C++

  • Qt

Xin chào
Đây là qtdev

1,176

Học viên

125

Đánh giá

112

Trả lời

4.7

Xếp hạng

9

Các khóa học

Giới thiệu người chia sẻ kiến thức ✒️


Kinh nghiệm làm việc
Hiện tại: Trưởng nhóm phần mềm (SW Team leader) trong lĩnh vực Nhúng (Embedded)
LG Electronics, Bộ phận VS, Phát triển mô-đun/nền tảng tiên tiến IVI
SW Maestro, Cố vấn phần mềm (SW Mentor)

Kinh nghiệm giảng dạy
Samsung Electronics, Giảng dạy Qt & QML
LG Electronics, Giảng viên nội bộ lĩnh vực Qt & QML
Giảng dạy khóa học Qt tại Hancom Academy
Giảng dạy khóa học Qt tại nhiều doanh nghiệp CNTT (IT)


Sách đã xuất bản
Lập trình Qt
Lập trình Qt Quick
Hướng dẫn lập trình Qt5
Hướng dẫn lập trình MeeGo toàn tập
Lập trình Qt thực chiến

Vận hành cộng đồng SW
Quản trị viên cộng đồng nhà phát triển Qt ( www.qt-dev.com )

Thêm

Chương trình giảng dạy

Tất cả

47 bài giảng ∙ (9giờ 8phút)

Tài liệu khóa học:

Tài liệu bài giảng
Ngày đăng: 
Cập nhật lần cuối: 

Đánh giá

Tất cả

18 đánh giá

4.8

18 đánh giá

  • qkfka23236549님의 프로필 이미지
    qkfka23236549

    Đánh giá 4

    ∙

    Đánh giá trung bình 5.0

    5

    32% đã tham gia

    Tôi đang học lại và cảm thấy rất tốt. Tôi đang ôn tập lại những kiến thức đã học trước đó nhưng bị quên. Đây là bài giảng về Qt hay đến mức đáng để học lại lần nữa.

    • qtdev
      Giảng viên

      Chào bạn Lee Jun-hyun, cảm ơn bạn rất nhiều vì đã đánh giá tốt cho chúng tôi. :)

  • siroimono님의 프로필 이미지
    siroimono

    Đánh giá 39

    ∙

    Đánh giá trung bình 5.0

    5

    64% đã tham gia

    Kích thước chữ trên màn hình có vẻ lớn hơn rồi? Tốt đấy

    • qtdev
      Giảng viên

      White님 đánh giá điểm số tốt, cảm ơn rất nhiều. Sẽ nỗ lực hơn nữa để cung cấp nội dung chất lượng. :)

  • junghwanjeong님의 프로필 이미지
    junghwanjeong

    Đánh giá 52

    ∙

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Nó rất hữu ích trong việc tìm ra cách sử dụng QML trong tương lai. Trong tương lai, sẽ rất hữu ích nếu có được bí quyết nếu có một chương trình giảng dạy chọn một nội dung thực tế và thực hiện toàn bộ quy trình.

    • qtdev
      Giảng viên

      Junghwan Jeong, cảm ơn bạn rất nhiều vì sự giúp đỡ của bạn. Cảm ơn bạn đã phản hồi tốt. Trong ứng dụng QML tiếp theo, chúng tôi sẽ bổ sung triển khai toàn bộ quy trình và bao gồm cả Qt Design Studio.

  • greenspace님의 프로필 이미지
    greenspace

    Đánh giá 3

    ∙

    Đánh giá trung bình 5.0

    5

    32% đã tham gia

    Giảng viên đỉnh quá~~!!!

    • qtdev
      Giảng viên

      Anh/Chị 박시우, cảm ơn đánh giá tốt rất nhiều. :)

  • psjhsi122824님의 프로필 이미지
    psjhsi122824

    Đánh giá 3

    ∙

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    Đó là một bài giảng tốt. Tôi cũng sẵn sàng nghe phần 2.

    • qtdev
      Giảng viên

      Xin chào. Bài hát JunHwan thân mến, Cảm ơn bạn rất nhiều vì đánh giá tốt của bạn. ^^;

Khóa học khác của qtdev

Hãy khám phá các khóa học khác của giảng viên!

Khóa học tương tự

Khám phá các khóa học khác trong cùng lĩnh vực!

Giảm 25% cho thành viên mới

1.364.506 ₫

25%

1.819.336 ₫