Lập trình Python GUI vs PySide

5,213 views

Published on

Slide trình bày một cách đơn giản nhất kiến thức nhập môn, tạo ra chương trình lập trình giao diện đầu tiên bằng PySide cho những người đã có kiến thức nhất định về Python.
Trang cá nhân của tác giả có thay đổi về địa chỉ:
https://chiencg.wordpress.com/

Published in: Technology
5 Comments
3 Likes
Statistics
Notes
No Downloads
Views
Total views
5,213
On SlideShare
0
From Embeds
0
Number of Embeds
921
Actions
Shares
0
Downloads
104
Comments
5
Likes
3
Embeds 0
No embeds

No notes for slide

Lập trình Python GUI vs PySide

  1. 1. Lập trình Python GUI với PySide Việt hóa bởi: Chien Proger http://chienproger.wordpress.com http://facebook.com/chienproger
  2. 2. CLI vs. GUI CLI(Command Line Interface) • Chiếm ít tài nguyên. • Người dùng có nhiều quyền xử lý hệ thống. • Chỉ việc gõ 1 vài dòng để thực hiện một việc. GUI(Graphical User Interface) • Dễ dàng hơn cho người dùng khi tương tác với ứng dụng. • Có khả năng đa nhiệm.
  3. 3. Về Python + GUI Một số thư viện GUI cho Python:  Tkinter: Gói thư viện GUI chuẩn của Python(Tcl/Tk)  wxPython: Module mở rộng của Python nằm trong thư viện wxWidgets.  PyQt4: Phần liên kết của Python với nền tảng của bộ công cụ GUI Qt. (có phí)  PySide: Giống như PyQt4 nhưng miễn phí. Qt và wxWidgets được biết đến là thư viện GUI của C++:  Miễn phí và mã nguồn mở.  Là nền tảng cho nhiều thư viện khác và hỗ trợ Unicode.  Có đầy đủ tài liệu hướng dẫn và cộng đồng hỗ trợ.
  4. 4. Tại sao dùng Qt/PySide? • Ưu điểm: – Không dùng kiểu MFC (kiểu code được dùng trong Visual Studio) – Xây dựng dễ dàng với QtDesigner hoặc code văn bản. – Kỹ thuật trực giác SIGNAL/SLOT. – Hỗ trợ I18N (Chuẩn quốc tế). – LGPL. (GNU Lesser General Public License) – API mang tính Python nhiều hơn (Pythonic). • Nhược điểm: – Qt không được viết trong thư viện chuẩn C++. – Dung lượng ứng dụng lớn. – Blah blah blah… Tôi không quan tâm, còn bạn?
  5. 5. Trước khi bắt đầu… • Cài đặt Python(what?!) - http://www.python.org/download - Người dùng cần chú ý so sánh giữa phiên bản 2.7.x vs. 3.x. • Cài đặt Qt: - http://qt-project.org/downloads - Bản mới nhất là 5.0. • Cài đặt PySide: - http://qt-project.org/wiki/PySideDownloads - Bản hiện tại là 1.1.2, nhưng bản được dùng nhiều nhất là 1.0.7.
  6. 6. Một chương trình đơn giản • test.py - Kiểu hướng đối tượng Rất dễ dàng!
  7. 7. Một chương trình đơn giản • test.py import module PySide
  8. 8. Một chương trình đơn giản • test.py Kế thừa lớp QMainWindow Đặt tiêu đề và hiện cửa sổ
  9. 9. Một chương trình đơn giản • test.py Hàm main lặp sự kiện Tạo ví dụ MyWindow
  10. 10. Một chương trình đơn giản • test.py Thực ra cách đơn giản nhất là: Phần kích hoat khi chạy test.py
  11. 11. Còn vấn đề gì nữa? • Giống với HD, bạn phải định dạng trước khi dùng vào dữ liệu của mình: – HDCửa sổ hiện tại. – Định dạngQLayout. – Dữ liệuQwidget. • QLayout và QWidget là 2 class cơ bản nhất để tạo nên GUI của bạn. QMainWindow là 1 lớp con của Qwidget Hình bên mô tả cấu hình mặc định.
  12. 12. QtLayout • Thực tế, bạn ko cần phải bắt đầu với QLayout, có nhiều cách bố trí tiền thiết kế, dùng trực tiếp chúng có thể là đủ!
  13. 13. QWidget • Ví dụ: Suy nghĩ: Cài đặt layout trong QGroupBox là gì?
  14. 14. Hãy thêm chút "mắm muối"!
  15. 15. Làm sao để chạy nó? • Giờ bạn đã có “bộ da” cho ứng dụng của mình. Hãy làm nó hoạt động! Ví dụ: Bấm nút “Big” sau đó đánh “Bigger” vào cửa sổ soạn thảo. Tác động Phản hồi • Trong Qt, Tác động & Phản hồi được gọi là SIGNAL & SLOT
  16. 16. SIGNAL/SLOT • self.btn1.clicked.connect(self.typebig) – Cải tiến của SIGNAL/SLOT là người gọi ko cần biết bất cứ thông tin gì về người nhận và ngược lại. – Tất cả các hàm đều có thể là SLOT. – Một hàm có thể kết nối vài SLOT với 1 SIGNAL và ngược lại. • Thường dùng: Kiểm tra thời gian thực cho các phần đầu vào.
  17. 17. Thực hành… • Chuyển đổi chương trình đơn giản sang MD5 Encrypter.
  18. 18. Thực hành… • Bạn cần import hashlib trước tiên:
  19. 19. Sử dụng module nâng cao • Matplotlib: Một thư viện vẽ của Python.(Dựa trên PySide!) • SciPy: Một thư viện các công cụ nguồn mở về khoa học cho Python. • VTK: Visual Tool Kit (TVTK, Mayavi)
  20. 20. Tốt hơn excel nhiều! • Mã nguồn: http://matplotlib.org/examples/pylab_examples/demo_agg_filter.html
  21. 21. Tiếp tục mọi việc • Trang trí: - Thêm phần nâng cao như: groups, tabs, tooltips, …, etc. - Thêm nhiều icon, âm thanh or vài hiệu ứng… • Duy trì: – Sửa lỗi, sử lỗi và sửa lỗi. • Đóng gói/Phát hành: - PyInstaller - Cross platform - cx_Freeze - Cross platform - py2exe - Window only
  22. 22. Tạo chương trình GUI của bạn! • Mô hình – Xem – Quản lý • Công cụ tự động • Lập trình phân loại • Quản lý dữ liệu • Đa phương tiện • Phần mềm CAD • Hệ nhúng • Ứng dụng web • Games • …..
  23. 23. Tổng kết • Lập trình GUI giúp bạn tác động/điều khiển ứng dụng và báo cáo dữ liệu cuối cùng nhìn thấy được. Các lập trình viên nên quen với khái niệm đơn giản của nó. • Lập trình trong PySide = Lập trình trong OOP. Tất cả các thành phần của thư viện có thể dễ dàng đáp ứng và sửa đổi. Cố gắng dùng chúng nhiều nhất có thể! • Có rất nhiều hàm "rực rỡ" giống như đồ họa, hoạt hình, kéo và thả... cho lập trình GUI. Bạn có thể làm tăng kinh nghiệm lập trình bằng chúng, nhưng hãy nhớ dành sự chú ý nhiều hơn vào việc thực hiện ứng dụng của riêng bạn.
  24. 24. Tham khảo
  25. 25. Xin cảm ơn sự quan tâm của các bạn  (Slide được trình chiếu ngày 04/03/2013 bởi BigLittle)

×