Inflearn brand logo image
Inflearn brand logo image
Inflearn brand logo image
Programming

/

Desktop Application

[Cấp độ 2] Lập trình Python sử dụng Qt: QML

QML là ngôn ngữ thông dịch lập trình tạo giao diện người dùng do Qt cung cấp. Tương tự như JSON và có thể sử dụng JavaScript. Sử dụng QML và Python cùng nhau, bạn có thể dễ dàng phát triển giao diện người dùng hiện đại, nâng cao.

(5.0) 1 đánh giá

18 học viên

  • qtdev
이론 실습 모두
pyqt
qt
Qt
QML
pyside6
Python
GUI

Dịch cái này sang tiếng Việt

  • Sử dụng các thành phần giao diện người dùng và ngữ pháp cơ bản của QML: Hiểu ngữ pháp, cấu trúc và loại QML, đồng thời tìm hiểu cách thiết kế các giao diện người dùng khác nhau bằng cách sử dụng các thành phần giao diện người dùng cơ bản dựa trên điều này.

  • Triển khai các tính năng giao diện người dùng nâng cao: Tìm hiểu cách triển khai giao diện người dùng nâng cao, sống động hơn thông qua giao diện người dùng động, hoạt ảnh, chuyển đổi trạng thái, v.v., đồng thời sử dụng hoạt ảnh và đường cong giảm bớt để mang lại trải nghiệm người dùng tự nhiên và mượt mà.

  • Phát triển các ứng dụng có thể mở rộng thông qua tích hợp với Python: Hiểu trao đổi dữ liệu và khả năng tương tác giữa QML và Python, đồng thời tìm hiểu cách xây dựng các ứng dụng linh hoạt và có thể mở rộng thông qua tích hợp và mở rộng loại QML bằng Python.

Để giúp bạn học QML trong Python dễ dàng hơn, đây là hướng dẫn dành cho bạn.
Chúng tôi cung cấp các bài giảng chuyên ngành.

Triển khai giao diện người dùng Qt Framework,
Mạnh mẽ hơn với QML!

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

Giao diện người dùng hiện đại, tiên tiến trong khuôn khổ Qt
Đây là ngôn ngữ lập trình dễ phát triển.

QML (Ngôn ngữ Mô hình Qt) là một ngôn ngữ lập trình mạnh mẽ được cung cấp bởi nền tảng Qt, mang đến giải pháp tối ưu cho việc phát triển giao diện người dùng (UI). Nó cho phép triển khai hiệu quả các giao diện người dùng hiện đại, tinh vi và tiên tiến, đồng thời dễ dàng hỗ trợ các tác vụ thiết kế và hoạt ảnh trực quan và linh hoạt, góp phần tối đa hóa trải nghiệm người dùng.


Khi phát triển GUI với framework Qt, bạn có thể tách biệt rõ ràng logic thiết kế UI (QML) với logic chức năng (Python). Cụ thể, QML có thể được sử dụng như một ngôn ngữ chuyên dụng cho logic thiết kế UI. Việc triển khai UI bằng QML cho phép tách biệt hoàn toàn logic thiết kế và logic chức năng (Python), tối đa hóa khả năng tái sử dụng mã và cải thiện khả năng bảo trì.

Việc phát triển logic thiết kế bằng QML cho phép triển khai giao diện người dùng (UI) đơn giản và nhanh chóng hơn nhiều. Hơn nữa, nó cho phép dễ dàng áp dụng các công nghệ GUI hiện đại, tiên tiến như Flickable, Gesture, Animation và 3D, khiến nó trở thành một lựa chọn tuyệt vời để tạo ra trải nghiệm người dùng tinh tế và trực quan.

Ngữ pháp dễ hiểu, dễ đọc
Trải nghiệm những lợi ích của QML.

Hãy cùng xem ví dụ đầu ra "Hello World", một ví dụ phổ biến khi mới học ngôn ngữ lập trình. Thật dễ dàng để thấy QML ngắn gọn như thế nào.

nhập QtQuick Cửa sổ { chiều rộng : 300 chiều cao : 200 có thể nhìn thấy : đúng tiêu đề : qsTr ( "Mã nguồn ví dụ QML" ) Chữ { x : 80 y : 70 văn bản : "Xin chào thế giới" phông chữ. pixelSize : 25 } }

Màn hình thực thi mã nguồn ví dụ QML

QML là một ngôn ngữ súc tích và trực quan, dễ hiểu đến mức ngay cả những người không phải lập trình viên cũng có thể hiểu được. Điều này cho phép các nhà thiết kế và lập trình viên giao tiếp liền mạch, chia sẻ ý tưởng hiệu quả và cộng tác dựa trên mã QML.

Do đó, bằng cách sử dụng QML, các nhà thiết kế và nhà phát triển có thể cộng tác dựa trên cùng một công cụ phát triển, rút ngắn thời gian phát triển hiệu quả hơn trước.

Tôi giới thiệu điều này cho những người này 🙋‍♀

Triển khai UI/UX nâng cao

Bất kỳ ai (nhà phát triển, nhà thiết kế) muốn dễ dàng triển khai UI/UX hiện đại, tiên tiến bằng cách sử dụng QML trong Qt

Khả năng tái sử dụng mã nguồn

Bằng cách tách logic thiết kế và logic chức năng, bạn có thể tăng khả năng bảo trì và tái sử dụng mã nguồn.

Sự hợp tác mong muốn

Các nhà thiết kế và nhà phát triển có thể giao tiếp và cộng tác hiệu quả thông qua các công cụ tương tự như QML.

Phát triển giao diện người dùng trực quan và hiện đại

Được khuyến nghị cho những ai muốn xây dựng giao diện người dùng sống động và mượt mà bằng QML.

Phát triển các ứng dụng linh hoạt với Python và QML

Lý tưởng cho các nhà phát triển muốn xây dựng các ứng dụng có khả năng mở rộng trên nhiều nền tảng.

Tối đa hóa hoạt ảnh và trải nghiệm người dùng (UX)

Dành cho những ai muốn học các kỹ thuật hoạt hình nâng cao để làm cho giao diện người dùng của họ tự nhiên và hấp dẫn hơn.

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

  • Tìm hiểu cách phát triển UX/UI hiện đại, tiên tiến bằng QML.

  • Bạn sẽ học cách sử dụng QML để tách biệt hoàn toàn logic thiết kế (QML) khỏi logic chức năng (Python).

  • Bạn có thể học các kỹ năng phát triển QML cần thiết trong lĩnh vực này một cách tự nhiên bằng cách nghiên cứu lý thuyết theo từng phần và tự viết mã dựa trên nhiều ví dụ thực tế khác nhau.

Các tính năng độc đáo của khóa học này 📖

Một bài giảng xem xét các tình huống thực tế

Khóa học được thiết kế nhằm nâng cao kỹ năng thực hành. Sau mỗi phần lý thuyết, bạn sẽ được học thông qua các ví dụ thực hành, giúp bạn nâng cao kỹ năng thực hành.

Vượt ra ngoài những bức tường trực tuyến

Chúng tôi đã ghi lại hình ảnh người chia sẻ kiến thức trên màn hình. Học mọi lúc, mọi nơi, như thể bạn đang tham gia một lớp học ngoại tuyến, với mã hóa trực tiếp sống động.

Cấu trúc khóa học 📖 - Những gì bạn sẽ học

Phần 1. Bắt đầu bài giảng
Trước khi bài giảng bắt đầu, phần này cung cấp tổng quan về toàn bộ quá trình học tập. Phần này giới thiệu giảng viên và tóm tắt nội dung chính được trình bày trong mỗi phần, giúp bạn nắm bắt được mạch nội dung chung của bài giảng.

Mục 2. Tài liệu bài giảng
Phần này cung cấp tất cả các tệp mã nguồn ví dụ được sử dụng trong các bài giảng, bắt đầu từ Phần 3 , dưới dạng tệp nén để tải xuống. Phần này chỉ được cung cấp cho mục đích tham khảo, không phải là một phần của khóa học.

Phần 3. Thiết lập môi trường phát triển
Phần này sẽ đi sâu vào cách thiết lập môi trường phát triển cho lập trình Python bằng Qt. Chúng ta cũng sẽ tìm hiểu cách sử dụng Visual Studio Code làm IDE để viết mã nguồn.

Phần 4. QML là gì
QML là ngôn ngữ thông dịch được cung cấp bởi Qt Framework. Trong bài học này, chúng ta sẽ khám phá các tính năng và ưu điểm của QML.

Mục 5. Cú pháp và cấu trúc của QML
Phần này trình bày về cấu trúc và cú pháp của QML và cách sử dụng QML thông qua các ví dụ thực tế.

Mục 6. Loại
Kiểu là một khái niệm tương tự như QWidget của Qt. Trong phần này, chúng ta sẽ tìm hiểu về Kiểu và tập trung vào các kiểu được sử dụng phổ biến nhất do QML cung cấp. Để minh họa, chúng ta sẽ triển khai một kiểu nút bằng cách sử dụng kiểu Accessible.

Mục 7. Sự kiện
Phần này trình bày cách triển khai xử lý sự kiện cho các sự kiện giao diện người dùng, chẳng hạn như cảm ứng, chuột và bàn phím. Bạn cũng sẽ học cách triển khai tín hiệu trong QML. Trong ví dụ thực hành, bạn sẽ tìm hiểu cách xử lý tín hiệu chi tiết thông qua các ví dụ về cách kết nối tín hiệu với các phương thức (hàm).

Phần 8. Triển khai UI động bằng cách sử dụng loại Loader
Bạn sẽ học cách thay đổi động các khu vực cụ thể của giao diện người dùng (UI). Ví dụ: bạn sẽ học cách chuyển đổi từ màn hình GUI A sang màn hình B khi một điều kiện nhất định được đáp ứng. Do đó, trong phần này, bạn sẽ học cách triển khai màn hình động. Ví dụ thực hành cuối cùng sẽ minh họa cách thay đổi động các màn hình bằng cách sử dụng kiểu Loader.

Mục 9. Lập trình mô-đun
Tìm hiểu cách mô-đun hóa các kiểu dữ liệu do người dùng định nghĩa, chẳng hạn như các mô-đun GUI thường dùng như nút bấm và hộp tổ hợp. Bạn cũng sẽ học cách mô-đun hóa và triển khai QML thông qua các ví dụ thực hành.

Phần 10. Sử dụng JavaScript trong QML
Tìm hiểu cách sử dụng các hàm JavaScript trong QML và cách nhập các tệp JavaScript vào QML. Trong ví dụ thực hành này, bạn sẽ tìm hiểu thêm về cách sử dụng JavaScript bằng cách triển khai một máy tính.

Mục 11. Định vị kiểu chữ
Định vị Kiểu dữ liệu hướng dẫn bạn cách hiển thị kiểu dữ liệu trên màn hình. Ví dụ: bạn sẽ học cách sắp xếp kiểu dữ liệu theo chiều ngang, chiều dọc hoặc theo dạng lưới. Bạn cũng sẽ học cách truy xuất thông tin về một kiểu dữ liệu cụ thể khi nhiều kiểu dữ liệu được sắp xếp tuần tự.

Mục 12. Hoạt hình
Hoạt ảnh cung cấp một cách dễ dàng để áp dụng hoạt ảnh cho các thành phần GUI. Ví dụ: một nút có thể xuất hiện và biến mất. Hoạt ảnh có thể được sử dụng cho việc này. Ví dụ: một nút có thể biến mất trong một giây, hoặc có thể thiết lập một khoảng thời gian cụ thể để giá trị Độ mờ đục (Opacity) thay đổi từ 100% xuống 0%.

Sử dụng các hiệu ứng động này, bạn có thể tạo các hiệu ứng tương tự như hiệu ứng được sử dụng trên GUI. Bạn cũng có thể triển khai các hiệu ứng cho phép chuyển tiếp màn hình mượt mà. Do đó, trong phần này, bạn sẽ học cách sử dụng hiệu ứng động trên các thành phần GUI.

Mục 13. Ví dụ về triển khai giới hạn bóng bằng cách sử dụng hoạt ảnh và đường cong nới lỏng
Đường cong Easing cho phép bạn tạo các hiệu ứng phức tạp hơn bằng cách sử dụng các tùy chọn cụ thể trong hoạt ảnh. Ví dụ: bằng cách tăng tốc một khoảng thời gian cụ thể trong hoạt ảnh 10 giây, bạn có thể tạo ra nhiều hiệu ứng khác nhau.
Trong phần này, bạn sẽ học cách sử dụng đường cong easing trong hoạt hình thông qua các ví dụ thực tế.

Mục 14. Trạng thái và Chuyển đổi
Trạng thái biểu thị một điều kiện. Chuyển tiếp biểu thị một hành động. Ví dụ, trong công tắc bật/tắt, các điều kiện là "BẬT" và "TẮT", và hành động (chuyển tiếp) được định nghĩa là sự thay đổi từ "BẬT" sang "TẮT". Sử dụng trạng thái và chuyển tiếp, bạn có thể nhóm các hành vi phức tạp và để chúng thay đổi cùng nhau khi điều kiện thay đổi, giúp việc triển khai GUI phức tạp trở nên dễ dàng hơn.

Mục 15. Triển khai ví dụ về Trình xem hình ảnh bằng cách sử dụng Trạng thái và Chuyển tiếp
Trong phần này, chúng ta sẽ triển khai Trình xem hình ảnh bằng cách sử dụng Trạng thái và Chuyển tiếp đã học ở phần trước.

Mục 16. Mô hình và Chế độ xem
Mô hình và Chế độ xem được sử dụng để hiển thị lượng lớn dữ liệu trên GUI. Ví dụ: khi hiển thị 100 mục dữ liệu trong một bảng, dữ liệu được lưu trữ trong Mô hình, và Chế độ xem thể hiện cách dữ liệu được lưu trữ trong Mô hình được hiển thị trên GUI. Chế độ xem có thể là một bảng hoặc một cây. Trong phần này, bạn sẽ tìm hiểu cách sử dụng Mô hình và Chế độ xem.

Mục 17. Triển khai ván cờ vua bằng mô hình và chế độ xem
Chúng ta sẽ tìm hiểu sâu hơn về cách triển khai quân Mã trong Cờ vua bằng cách sử dụng Mô hình và Chế độ xem làm ví dụ.

Mục 18. Tích hợp giữa QML và Python
Tìm hiểu cách gọi hàm trong các lớp Python cụ thể từ QML và cách gọi hàm JavaScript cụ thể từ Python trong QML. Bạn cũng sẽ học cách gọi hàm và truyền dữ liệu giữa QML và Python thông qua các ví dụ thực hành.

Mục 19. Trao đổi dữ liệu danh sách giữa QML và Python
Tìm hiểu cách truyền danh sách dữ liệu lớn từ Python sang QML. Với một ví dụ thực tế, bạn sẽ học cách xử lý dữ liệu được lưu trữ trong danh sách Python, truyền dữ liệu sang QML và hiển thị dữ liệu trên UI.

Phần 20. Triển khai kiểu QML mới bằng Python
Cũng giống như cách chúng ta sử dụng QPainter để hiển thị các thành phần đồ họa 2D trên QWidget, chúng ta sẽ tìm hiểu cách sử dụng lớp QQuickPaintedItem do Python cung cấp để hiển thị các thành phần đồ họa 2D trên QML Type bằng QPainter.

Mục 21. Triển khai các kiểu QML trong các cấu trúc lồng nhau
Khi chỉ triển khai một Kiểu, bạn có thể cần triển khai một cấu trúc phân cấp. Ví dụ: bạn có thể cần triển khai nhiều Kiểu trong một Kiểu. Trong phần này, chúng ta sẽ tìm hiểu cách triển khai Kiểu phân cấp thông qua chủ đề Biểu đồ.

👉 Xem bạn đã thay đổi như thế nào sau khi học.

  • Sau khi hoàn thành khóa học này, bạn sẽ có thể sử dụng QML một cách thành thạo. Bạn cũng sẽ hiểu được sự khác biệt, ưu và nhược điểm của việc sử dụng QML trong các dự án thực tế so với phương pháp Python/Qt truyền thống, QWidget.

  • Ngoài ra, khi triển khai một dự án bằng QML, bạn có thể tách biệt hoàn toàn logic thiết kế (phần QML) và logic chức năng (Python) của mã nguồn được triển khai, giúp tăng khả năng tái sử dụng mã đã viết.

Hỏi & Đáp 💬

Trước khi tham gia khóa học, hãy viết ra ít nhất ba câu hỏi và câu trả lời mà học viên tiềm năng có thể có.
Chúng tôi khuyến khích những câu trả lời thể hiện rõ tính cách của người chia sẻ kiến thức thay vì những câu trả lời hiển nhiên hoặc hình thức.

H. Ngoài lý thuyết và ngữ pháp, tôi có thể tiếp cận được nhiều ví dụ thực tế không?

Có chứ. Sau mỗi bài giảng lý thuyết, bạn sẽ có buổi thực hành lập trình với giảng viên, sử dụng các ví dụ minh họa. Điều này cho phép bạn học các kỹ năng lập trình thực tế bằng cách sử dụng QML tại nơi làm việc.

H. Có tài liệu tham khảo hoặc giáo trình nào cho các bài giảng tôi đang học không?

Hiện tại tôi là quản trị viên của Cộng đồng nhà phát triển Qt ( qt-dev.com ). Bạn có thể tìm thêm các tài nguyên liên quan đến Qt và QML trên trang web này.

H. Tôi cần biết điều gì trước khi tham dự buổi thuyết trình?

Khóa học này yêu cầu kiến thức cơ bản về Python và Qt. Nếu bạn chưa có kinh nghiệm sử dụng Qt, chúng tôi khuyên bạn nên học khóa học trước đó, " [Cấp độ 1] Lập trình Python với Qt: Giới thiệu", trước khi tham gia khóa học này.

H. Nội dung bài học được trình bày ở mức độ nào?

Bao gồm mọi thứ từ kiến thức cơ bản về QML đến các chủ đề nâng cao cho nhiều lĩnh vực ứng dụng khác nhau.

Những điều cần lưu ý trước khi tham gia khóa học

Môi trường thực hành

  • Hệ điều hành và Phiên bản (OS): Khóa học này được thực hiện trên hệ điều hành Windows, nhưng cũng có thể được sử dụng trên nhiều hệ điều hành khác, bao gồm macOS, Linux và Ubuntu. Tuy nhiên, chúng tôi khuyến nghị sử dụng Windows.


  • Chúng tôi đã dành thời gian trong lớp học để cài đặt phần mềm cần thiết để xây dựng môi trường phát triển, vì vậy tất cả những gì bạn cần mang theo là máy tính và hệ điều hành.

Tài liệu học tập

  • Sau khi hoàn thành khóa học, bạn có thể tải xuống toàn bộ mã nguồn ví dụ cho khóa học này trong Phần 2 để làm tài liệu tham khảo.

Đặt một câu hỏi

  • Nếu bạn có bất kỳ thắc mắc hay lo lắng nào trong lớp học hoặc bất kỳ điều gì bạn không hiểu, đừng ngần ngại hỏi. Quá trình thảo luận và giải quyết vấn đề cùng nhau sẽ vô cùng có lợi cho việc học của bạn.

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

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

  • Bất kỳ ai quan tâm đến việc phát triển giao diện người dùng trực quan và hiện đại

  • Bất kỳ ai muốn tạo các ứng dụng linh hoạt thông qua tích hợp Python và QML

  • Những người muốn tối đa hóa trải nghiệm người dùng thông qua hoạt ảnh và triển khai giao diện người dùng động

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

  • Kiến thức lập trình Python cơ bản: Cần có sự hiểu biết về cú pháp cơ bản của Python, cấu trúc dữ liệu (danh sách, từ điển, v.v.) cũng như các định nghĩa và lệnh gọi hàm. Nếu bạn có kiến ​​thức cơ bản này, bạn có thể dễ dàng tiếp cận chương trình bằng Qt.

Xin chào
Đây là

993

Học viên

85

Đánh giá

100

Trả lời

4.7

Xếp hạng

9

Các khóa học

지식공유자 소개 ✒️


근무경력
: Embedded 분야 SW Team leader
LG전자, VS사업부 IVI선행플랫폼/모듈개발
SW마에스트로, SW 멘토

강의경력
삼성전자, Qt & QML 강의
LG전자, Qt & QML 분야 사내 강사
한컴아카데미 Qt 강의 출강
다수의 IT기업 Qt 강의 출강


저서
Qt 프로그래밍
Qt Quick 프로그래밍
Qt5 프로그래밍 가이드
MeeGo 프로그래밍 완벽 가이드
Qt 실전 프로그래밍

SW커뮤니티 운영
Qt 개발자 커뮤니티 운영자 ( www.qt-dev.com )

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

Tất cả

80 bài giảng ∙ (11giờ 55phú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ả

1 đánh giá

5.0

1 đánh giá

  • HJ K (바른진생)님의 프로필 이미지
    HJ K (바른진생)

    Đánh giá 2

    Đánh giá trung bình 5.0

    5

    100% đã tham gia

    • 김대진
      Giảng viên

      HJ K (바른진생)님 좋은 평가해 주셔서 너무감사합니다. 앞으로 더 좋은 강의 컨텐츠를 제공하는데 노력하겠습니다.

1.611.840 ₫

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!