![[Level 1] Qt를 이용한 Python 프로그래밍: 입문편강의 썸네일](https://cdn.inflearn.com/public/courses/335089/cover/838ed04b-4bc0-4f9f-bd00-91361fcb6238/335089.png?w=420)
[Level 1] Qt를 이용한 Python 프로그래밍: 입문편
김대진
Qt는 GUI뿐만 아니라 네트워크, 데이터베이스, 멀티미디어, IPC 등 다양한 기능을 제공하여 Python으로 쉽고 빠르게 다양한 분야의 애플리케이션을 개발할 수 있는 강력한 프레임워크입니다. 본 강의를 통해 Qt 기초부터 다양한 예제를 통해 Python에서 Qt를 효과적으로 활용하는 방법을 배워보겠습니다.
입문
Python, Qt, QML
QML là ngôn ngữ 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 thay vì ngôn ngữ C++ giúp dễ dàng phát triển giao diện người dùng cấp cao, hiện đại mà không cần sử dụng C++.
Phát triển giao diện người dùng hiện đại bằng QML
Phát triển giao diện người dùng bằng QML và C++
QML cho phát triển giao diện người dùng Qt,
Chúng tôi sẽ giải thích chi tiết từ phần giới thiệu đến phần thực hành.
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à ngôn ngữ lập trình được cung cấp bởi nền tảng Qt. QML là ngôn ngữ lập trình có thể được sử dụng để phát triển giao diện người dùng (UI) trong nền tảng Qt, giúp dễ dàng triển khai các giao diện người dùng hiện đại và tiên tiến.
Khi phát triển các chương trình GUI sử dụng nền tảng Qt, bạn có thể phân biệt giữa logic thiết kế của UI và logic chức năng của phần chức năng. Trong số đó, QML là ngôn ngữ được lựa chọn thay thế cho C++ khi phát triển các UI tương ứng với logic thiết kế . Cụ thể, việc phát triển UI với QML cho phép tách biệt hoàn toàn logic thiết kế và logic chức năng, do đó tăng khả năng tái sử dụng mã nguồn.
Việc phát triển logic thiết kế bằng QML cho phép bạn triển khai giao diện người dùng (UI) dễ dàng và nhanh chóng hơn nhiều so với việc phát triển bằng C++. Nó cũng cho phép bạn 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.
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.
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
QML rất đơn giản và dễ hiểu. Ngay cả những người không phải lập trình viên cũng có thể dễ dàng hiểu được. Do đó, các nhà thiết kế và lập trình viên có thể giao tiếp với nhau bằng mã QML và chia sẻ ý tưởng.
Do đó, QML cho phép các nhà thiết kế và nhà phát triển cộng tác bằng cách sử dụng cùng một công cụ phát triển , giúp giảm thời gian phát triển so với trước đây.
1️⃣
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
2️⃣
Những người muốn tăng khả năng bảo trì và 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 phải có hiểu biết cơ bản về ngôn ngữ C++ và framework Qt để tham gia khóa học này.
Lý thuyết và thực hành cùng một lúc
Ngoài ngữ pháp QML, khóa học còn được thiết kế để nâng cao kỹ năng thực hành. Sau mỗi phần lý thuyết, bạn sẽ được học các ví dụ thực hành và tự mình áp dụng, từ đó nâng cao hơn nữa kỹ năng thực hành của mì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.
Phần 1. 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.
Phần 2. Cú pháp và cấu trúc 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 3. 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 4. 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 5. 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 6. Vải bạt
Tìm hiểu cách hiển thị hình ảnh, đường nét, hình khối và văn bản trên màn hình, tương tự như chương trình Paint. Ví dụ, chúng ta hãy xem cách vẽ trong Paint bằng cách chọn màu.
Mục 7. Hiệu ứng đồ họa
Tìm hiểu cách sử dụng các Hiệu ứng như Làm mờ, Hòa trộn, Màu sắc, v.v. trên hình ảnh của bạn.
Mục 8. 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 9. 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 10. Đối thoại
Tìm hiểu cách sử dụng hộp thoại trong QML. Bạn cũng sẽ học cách sử dụng chúng bằng cách thực hành một ví dụ: hộp thoại để chọn màu.
Mục 11. Bố cục
Ngoài Anchor, QML còn hỗ trợ 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 các Layout khác nhau.
Mục 12. Định vị kiểu chữ
Định vị Kiểu chữ hướng dẫn bạn cách hiển thị kiểu chữ trên màn hình. Ví dụ: bạn sẽ học cách sắp xếp kiểu chữ theo chiều ngang, chiều dọc hoặc theo kiểu bàn cờ.
Mục 13. Điều khiển nhanh Qt
Qt Quick Controls cung cấp các giao diện GUI cần thiết để tạo màn hình, bao gồm Nút, Mặt số, Hộp kiểm và Chỉ báo bận. Trong phần này, bạn sẽ tìm hiểu cách sử dụng Qt Quick Controls.
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?
Tôi là quản trị viên của Cộng đồng nhà phát triển Qt ( qt-dev.com ). Trang web này là nguồn tài nguyên tuyệt vời cung cấp thông tin liên quan đến Qt và QML.
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ề C++ và Qt. Nếu bạn chưa có kinh nghiệm về Qt, chúng tôi khuyên bạn nên học khóa "Lập trình Qt" trước đó 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.
💾 Lưu ý
Khóa học này dành cho ai?
Bất kỳ ai muốn phát triển giao diện người dùng bằng QML
Bất kỳ ai muốn phát triển giao diện người dùng bằng QML trong khung Qt
Cần biết trước khi bắt đầu?
C++
Qt
1,015
Học viên
85
Đánh giá
102
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 )
Tất cả
47 bài giảng ∙ (9giờ 8phút)
Tài liệu khóa học:
Tất cả
13 đánh giá
4.9
13 đánh giá
Đánh giá 52
∙
Đánh giá trung bình 5.0
5
QML을 향후 어떻게 사용 할 지에 대해서 많은 도움이 되었습니다. 향후에 실무적인 아이템을 하나를 선정해서 전체 과정을 구현하는 교육과정이 있으면 노하우를 습득하는데 도움이 될 것 같습니다.
Junghwan Jeong 님 도움이 되셨다니 너무 감사합니다. 좋은 피드백 감사합니다. 다음 QML 활용편에서는 전체 과정을 구현하는 것을 추가하고 Qt Design Studio 도 넣을 수 있도록 하겠습니다.
Đánh giá 3
∙
Đánh giá trung bình 5.0
Đánh giá 3
∙
Đánh giá trung bình 5.0
5
좋은강의였습니다. 파트2도 들을의사있습니다.
안녕하세요. JunHwan Song 님, 좋은 평가해 주셔서 너무 감사합니다. ^^;
807.144 ₫
Hãy khám phá các khóa học khác của giảng viên!
Khám phá các khóa học khác trong cùng lĩnh vực!