Máy tính đại số python

Ngay cả khi ứng dụng web và di động xuất hiện như vượt qua thị trường phát triển phần mềm, vẫn có nhu cầu về ứng dụng máy tính để bàn giao diện người dùng đồ họa [GUI] truyền hệ thống. Đối với các nhà phát triển quan tâm đến việc xây dựng các loại ứng dụng này bằng Python, có rất nhiều thư viện để lựa chọn, bao gồm Tkinter , wxPython , PyQt , PySide2 và các thư viện khác. Trong hướng dẫn này, bạn sẽ phát triển các ứng dụng GUI trên máy tính để bàn với Python và PyQt

You will learn how

  • Tạo giao diện người dùng đồ họa với Python và PyQt
  • Mang lại sức sống cho các ứng dụng của bạn bằng cách kết nối các sự kiện của người dùng với các hành động cụ thể
  • Tạo các ứng dụng GUI đầy đủ chức năng để giải quyết các vấn đề trong thế giới thực

Đối với hướng dẫn này, bạn sẽ tạo một ứng dụng máy tính với Python và PyQt. Điều này sẽ giúp bạn nắm bắt các nguyên tắc cơ bản và giúp bạn bắt đầu và sử dụng thư viện. Bạn có thể tải xuống mã nguồn cho dự án và tất cả các ví dụ trong hướng dẫn này bằng cách nhấp vào liên kết bên dưới

Hiểu PyQt

PyQt là một liên kết Python cho Qt , là một tập hợp các thư viện C++ và các công cụ phát triển bao gồm các bản tóm tắt độc lập với nền tảng cho Giao diện người dùng đồ họa [GUI], cũng như mạng . Được phát triển bởi RiverBank Computing Ltd , PyQt có sẵn trong hai phiên bản

  1. PyQt4. một phiên bản được xây dựng dựa trên Qt 4. x và 5. x
  2. PyQt5. một phiên bản chỉ được xây dựng dựa trên Qt 5. x

Mặc dù PyQt4 có thể được xây dựng dựa trên Qt 5. x, chỉ một tập hợp con nhỏ cũng tương thích với Qt 4. x sẽ được hỗ trợ. Điều này có nghĩa là nếu bạn quyết định sử dụng PyQt4, thì có thể bạn sẽ bỏ lỡ một số tính năng và cải tiến mới trong PyQt5. Xem tài liệu PyQt4 để biết thêm thông tin về chủ đề này

Bạn sẽ bao gồm PyQt5 trong hướng dẫn này, vì nó có vẻ là tương lai của thư viện. Từ bây giờ, hãy chắc chắn rằng bất kỳ vấn đề cập nhật nào về PyQt là tham chiếu đến PyQt5

Lưu ý. Nếu bạn muốn tìm hiểu sâu hơn về sự khác biệt giữa hai phiên bản của thư viện, thì bạn có thể xem trang liên quan trên tài liệu PyQt5

PyQt5 dựa trên Qt v5 và bao gồm các lớp bao gồm Giao diện người dùng đồ họa cũng như xử lý XML, giao tiếp mạng, biểu thức chính quy, luồng, cơ sở dữ liệu SQL, tiện ích đa phương tiện, duyệt web và các công cụ . PyQt5 phát triển hơn một lớp Qt này trong một tập hợp các mô-đun Python, tất cả đều được chứa trong một gói Python cấp cao nhất được gọi là 

$ brew install pyqt5
2

PyQt5 tương thích với Windows, Unix, Linux, macOS, iOS và Android. Đây có thể là một tính năng hấp dẫn nếu bạn đang tìm kiếm một thư viện hoặc khuôn mẫu khó khăn để phát triển ứng dụng đa nền tảng với giao diện riêng trên mỗi nền tảng

PyQt5 có sẵn dưới hai giấy phép

  1. Giấy phép Thương mại Bờ sông
  2. Giấy phép Công cộng Chung [GPL], phiên bản 3

Giấy phép PyQt5 của bạn phải tương thích với giấy phép Qt của bạn. Nếu bạn sử dụng phiên bản GPL, thì mã của bạn cũng phải sử dụng giấy phép tương thích với GPL. Nếu bạn muốn sử dụng PyQt5 để tạo các ứng dụng thương mại, thì bạn cần phải có giấy phép thương mại để cài đặt

Lưu ý. Các Công ty Qt đã phát triển và hiện đang duy trì Python của riêng mình bắt buộc đối với các thư viện Qt. Thư viện Python được gọi là Qt cho Python và được coi là Qt chính thức cho Python. Trong trường hợp này, gói Python được gọi là PySide2

Vì PyQt5 và PySide2 đều được xây dựng dựa trên Qt nên các API của chúng tương đối giống nhau, thậm chí gần như giống nhau. Đó là lý do tại sao việc chuyển mã PyQt5 sang PySide2 có thể đơn giản như cập nhật một số lần nhập. Nếu bạn học một số trong số họ, thì bạn sẽ có thể làm việc với người kia với nỗ lực tối thiểu. Nếu bạn muốn tìm hiểu sâu hơn về sự khác biệt giữa hai thư viện này, thì bạn có thể xem các tài nguyên sau

  • PyQt so với Qt cho Python [PySide2]
  • Sự khác biệt giữa PyQt5 và PySide2 là gì?

Cài đặt PyQt

Bạn có một số tùy chọn để lựa chọn khi cài đặt PyQt trên hệ thống hoặc môi trường phát triển của mình. Tùy chọn đầu tiên là xây dựng từ nguồn. Điều này có thể hơi phức tạp, vì vậy bạn có thể muốn tránh nó nếu có thể. Nếu bạn thực sự cần xây dựng từ nguồn, thì bạn có thể xem tài liệu của thư viện đề xuất trong các trường hợp đó

Lưu ý. Hầu hết các tùy chọn cài đặt mà bạn sẽ đề cập ở đây đều yêu cầu bạn có một bản cài đặt Python đang hoạt động. Nếu bạn cần tìm hiểu sâu hơn về cách cài đặt Python, hãy xem Cài đặt Python trên Windows, macOS và Linux

Một lựa chọn khác sẽ là sử dụng bánh xe nhị phân. Bánh xe là một cách rất phổ biến để quản lý việc cài đặt các gói Python. Tuy nhiên, bạn cần lưu ý rằng bánh xe cho PyQt5 chỉ khả dụng cho Python 3. 5 trở lên. Có bánh xe cho

  • Linux [64-bit]
  • hệ điều hành Mac
  • Windows [32-bit và 64-bit]

Tất cả các bánh xe này đều bao gồm các bản sao của các thư viện Qt tương ứng, vì vậy bạn sẽ không cần phải cài đặt chúng theo một cách riêng biệt

Tùy chọn thứ ba của bạn là sử dụng gói quản lý gói trên bản phân phối Linux và macOS. Đối với Windows, bạn có thể sử dụng 

$ brew install pyqt5
3tệp nhị phân. Tùy chọn thứ tư và cuối cùng của bạn là sử dụng phân phối Anaconda để cài đặt PyQt trên hệ thống của bạn. Một số phần tiếp theo sẽ hướng dẫn bạn một số tùy chọn mà bạn có thể cài đặt đúng cách PyQt5 từ các nguồn khác nhau và trên các nền tảng khác nhau

Cài đặt trên toàn bộ hệ thống với 
$ brew install pyqt5
4

Nếu bạn đang sử dụng Python 3. 5 trở lên, thì bạn có thể cài đặt PyQt5 từ PyPI bằng cách chạy lệnh sau

$ pip3 install pyqt5

Với lệnh này, bạn sẽ cài đặt PyQt5 trong hệ thống cơ sở của mình. Bạn có thể bắt đầu sử dụng thư viện ngay sau khi quá trình cài đặt kết thúc. Tùy thuộc vào hệ điều hành của bạn, bạn có thể cần cấp quyền root hoặc quản trị viên để cài đặt hoạt động này

Cài đặt môi trường ảo với 
$ brew install pyqt5
4

Bạn có thể quyết định không cài đặt PyQt trực tiếp trên hệ thống cơ sở của mình để tránh làm xáo trộn cấu hình của bạn. Trong trường hợp này, bạn có thể sử dụng môi trường ảo Python. Sử dụng các lệnh sau để tạo và cài đặt PyQt5

$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2

Tại đây, bạn đã tạo một môi trường ảo với 

$ brew install pyqt5
6. Sau khi bạn kích hoạt nó, bạn cài đặt 
$ brew install pyqt5
7trong môi trường đó với 
$ brew install pyqt5
8. Thay thế cài đặt này là tùy chọn được khuyến nghị tốt nhất nếu bạn muốn giữ cho hệ thống cơ sở của mình sạch sẽ

Cài đặt dành riêng cho nền tảng

Trong hệ thống sinh thái Linux, một số bản phân phối bao gồm các gói nhị phân phân cho PyQt trong kho của họ. Nếu điều này đúng với bản phân phối của bạn, thì bạn có thể cài đặt thư viện bằng trình quản lý gói của bản phân phối. Ví dụ. trên Ubuntu 18. 04, you can use after command

$ sudo apt install python3-pyqt5

Với lệnh này, bạn sẽ cài đặt PyQt5 và tất cả các thành viên phụ thuộc của nó trong hệ thống cơ sở của bạn, vì vậy bạn có thể sử dụng thư viện trong bất kỳ dự án GUI nào của mình. Lưu ý rằng đặc quyền root là cần thiết mà bạn gọi ở đây 

$ brew install pyqt5
9

Nếu bạn là người dùng Mac, thì bạn có thể cài đặt PyQt5 bằng trình quản lý gói Homebrew. Để làm điều đó, hãy mở một thiết bị đầu cuối và nhập lệnh sau

$ brew install pyqt5

Nếu mọi thứ được chia sẻ, thì bạn sẽ có PyQt5 được cài đặt trên hệ thống cơ sở của mình, sẵn sàng để bạn sử dụng

Lưu ý. Nếu bạn sử dụng trình quản lý gói trên Linux hoặc macOS, thì có khả năng bạn sẽ không nhận được phiên bản mới nhất của PyQt5. Một 

$ brew install pyqt5
4cài đặt sẽ tốt hơn nếu bạn muốn chắc chắn rằng bạn đang có phiên bản mới nhất

Nếu bạn thích sử dụng Windows, nhưng bạn quyết định không sử dụng bánh xe nhị phân, thì đường dẫn của bạn thông qua cài đặt PyQt có thể khó khăn. Đó là do trang tải xuống PyQt5 đường như không còn cung cấp các tệp [ 

$ brew install pyqt5
3tệp] nhị phân Windows cho các phiên bản sau. Tuy nhiên, bạn có thể tìm thấy một số gói nhị phân Windows cho các phiên bản cũ hơn của thư viện tại trang dự án. Tệp nhị phân mới nhất được tạo cho PyQt v5. 6

Nếu bạn thực sự cần cài đặt PyQt theo cách này, thì bạn sẽ cần

  1. Specify the Python version you are running and data you are Python 32 bit or 64 bit
  2. Tải xuống phiên bản phù hợp để cài đặt Python của bạn
  3. Cài đặt PyQt bằng cách chạy 
    $ brew install pyqt5
    
    3tệp và làm theo hướng dẫn trên màn hình

Cài đặt Anaconda

Một giải pháp thay thế khác mà bạn có thể sử dụng để cài đặt PyQt là Anaconda, một bản phân phối Python cho khoa học dữ liệu. Anaconda là một gói và trình quản lý môi trường đa nền tảng và miễn phí, bao gồm một bộ sưu tập hơn 1. 500 gói mã nguồn mở

Anaconda cung cấp một hướng dẫn cài đặt thân thiện với người dùng mà bạn có thể sử dụng để cài đặt PyQt trên hệ thống của mình. You can tải xuống phiên bản thích hợp cho nền hiện tại của mình và làm theo hướng dẫn trên màn hình. Nếu bạn cài đặt phiên bản mới nhất của Anaconda, thì bạn sẽ có các gói sau

  • $ brew install pyqt5
    
    53. ràng buộc Python cho bộ công cụ GUI đa nền tảng Qt [Giấy phép thương mại, GPL-2. 0, GPL-3. 0]
  • $ brew install pyqt5
    
    54. lớp tương thích cho PyQt4 / PyQt5 [giấy phép GPL-3. 0]
  • $ brew install pyqt5
    
    55. một lớp đối tượng PyQt5 / PyQt4 / PySide [giấy phép MIT]
  • $ brew install pyqt5
    
    56. thư viện Python cho Đồ họa Khoa học [Giấy phép MIT]

Với bộ gói này, bạn sẽ có tất cả những gì bạn cần để phát triển ứng dụng GUI trên máy tính để bàn với Python và PyQt

Lưu ý. Lưu ý rằng cài đặt Anaconda sẽ chiếm một lượng lớn dung lượng ổ đĩa. Nếu bạn cài đặt Anaconda chỉ để sử dụng các gói PyQt, thì bạn sẽ có một lượng lớn các gói và thư viện không sử dụng trên hệ thống của mình. Hãy ghi nhớ điều này khi bạn cân nhắc sử dụng phân phối Anaconda

Create your first application PyQt

Bây giờ bạn đã cài đặt PyQt active, bạn đã sẵn sàng để bắt đầu viết mã. You will make a "Xin chào, Thế giới. " ứng dụng với Python và PyQt. Dưới đây là các bước bạn sẽ làm theo

  1. Nhập 
    $ brew install pyqt5
    
    57và tất cả các tiện ích được yêu cầu từ 
    $ brew install pyqt5
    
    58
  2. Create a version of 
    $ brew install pyqt5
    
    57
  3. Create a GUI version of your application
  4. Show the GUI of your application
  5. Chạy vòng lặp sự kiện của ứng dụng của bạn [hoặc vòng lặp chính]

Bạn có thể tải xuống mã nguồn cho các ví dụ mà bạn sẽ trình bày trong phần này tại liên kết bên dưới

Download code. Truy cập vào đây để tải xuống mã, bạn sẽ sử dụng để tạo máy tính bằng Python với PyQt trong hướng dẫn này

Bạn sẽ bắt đầu với một tệp có tên 

$ brew install pyqt5
20trong thư mục đang làm việc hiện tại của mình

$ brew install pyqt5
5

Đầu tiên, bạn hãy nhập 

$ brew install pyqt5
21, điều này sẽ cho phép bạn xử lý trạng thái thoát của ứng dụng. Sau đó, bạn nhập 
$ brew install pyqt5
57, 
$ brew install pyqt5
23và 
$ brew install pyqt5
24từ 
$ brew install pyqt5
25, đó là một phần của gói gọi 
$ brew install pyqt5
2. Bạn sẽ sử dụng những lần nhập sau này, nhưng hiện tại, bạn đã hoàn thành một bước

Đối với bước hai, bạn cần tạo một phiên bản 

$ brew install pyqt5
57như sau

$ brew install pyqt5
2

Tại đây, bạn đã tạo phiên bản của 

$ brew install pyqt5
57. Vì
$ brew install pyqt5
57đối tượng [ 
$ pip3 install pyqt5
40] thực hiện quá nhiều lần khởi động, bạn nên tạo nó trước khi tạo bất kỳ đối tượng nào khác liên quan đến GUI. Đối tượng 
$ brew install pyqt5
57tượng cũng xử lý các đối số dòng lệnh phổ biến , vì vậy bạn cũng cần phải chuyển vào 
$ pip3 install pyqt5
42dưới dạng đối số khi bạn tạo 
$ pip3 install pyqt5
40

Lưu ý.

$ pip3 install pyqt5
42 chứa các 
$ pip3 install pyqt5
45đối số dòng lệnh được truyền vào tập lệnh Python. Nếu ứng dụng của bạn không chấp nhận các đối số dòng lệnh, thì bạn có thể sử dụng giá trị trống 
$ pip3 install pyqt5
45 thay vì 
$ pip3 install pyqt5
42. Đó là, bạn có thể làm một cái gì đó như thế nào 
$ pip3 install pyqt5
48

Bước ba là tạo GUI của ứng dụng. Đối với ví dụ này, GUI của bạn sẽ dựa trên

$ brew install pyqt5
23, là lớp cơ sở của tất cả các đối tượng giao diện người dùng trong PyQt. Please create GUI

$ pip3 install pyqt5
4

Trong mã này, 

$ brew install pyqt5
50là một ví dụ của 
$ brew install pyqt5
23, cung cấp tất cả các tính năng bạn cần để tạo cửa sổ [hoặc biểu mẫu] của ứng dụng. Với 
$ brew install pyqt5
52, bạn có thể thêm tiêu đề vào cửa sổ ứng dụng của mình. Trong trường hợp này, tiêu đề sẽ hiển thị là 
$ brew install pyqt5
53

Bạn có thể sử dụng 

$ brew install pyqt5
54 để xác định kích thước của cửa sổ và vị trí đặt nó trên màn hình của bạn. Hai tham số đầu tiên là 
$ brew install pyqt5
55và 
$ brew install pyqt5
56tọa độ mà tại đó cửa sổ sẽ được đặt trên màn hình. Tham số thứ ba và thứ tư là 
$ brew install pyqt5
57và 
$ brew install pyqt5
58của cửa sổ

Mọi chức năng của ứng dụng GUI đều cần có widget. Tại đây, bạn sử dụng một đối tượng 

$ brew install pyqt5
24 [ 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
50] để hiển thị thông báo 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
51 trên cửa sổ ứng dụng của mình.
$ brew install pyqt5
24các đối tượng có thể chấp nhận văn bản HTML, vì vậy bạn có thể sử dụng phần tử HTML 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
53 để định dạng văn bản dưới dạng 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
54tiêu đề. Cuối cùng, bạn sử dụng 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
55 để đặt 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
50 tại các trạng thái 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
57 trên cửa sổ ứng dụng của bạn

Lưu ý. Trong PyQt5, bạn có thể sử dụng bất kỳ tiện ích nào [một lớp con của 

$ brew install pyqt5
23] làm cửa sổ cấp cao nhất hoặc thậm chí chí là một nút hoặc một nhãn. Điều kiện duy nhất là bạn không vượt qua 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
59nó. Khi bạn sử dụng một widget như thế này, PyQt5 sẽ tự động cung cấp cho nó một tiêu đề thanh và biến nó thành một cửa sổ bình thường

Mối quan hệ cha mẹ - con cái được sử dụng cho hai mục đích bổ sung

  1. Con tiện ích không có 
    $ python3 -m venv pyqtvenv
    $ source pyqtvenv/bin/activate
    [pyqtvenv] $ pip install pyqt5
    Collecting pyqt5
    ...
    Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
    
    59là cửa sổ chính hoặc cửa sổ cấp cao nhất
  2. Một tiện ích có 
    $ python3 -m venv pyqtvenv
    $ source pyqtvenv/bin/activate
    [pyqtvenv] $ pip install pyqt5
    Collecting pyqt5
    ...
    Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
    
    59[luôn là một tiện ích khác] được chứa [hoặc hiển thị] bên trong nó 
    $ python3 -m venv pyqtvenv
    $ source pyqtvenv/bin/activate
    [pyqtvenv] $ pip install pyqt5
    Collecting pyqt5
    ...
    Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
    
    59

Mối quan hệ này cũng xác định quyền sở hữu , với việc cha mẹ sở hữu con cái của họ. Mô hình quyền sở hữu PyQt5 chắc chắn rằng nếu bạn xóa 

$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
59[ví dụ. cửa sổ cấp cao nhất], thì tất cả các cửa sổ con [tiện ích con] của nó cũng sẽ tự động bị xóa

Để tránh rò rỉ bộ nhớ, bạn phải luôn chắc chắn rằng bất kỳ 

$ brew install pyqt5
23đối tượng nào cũng có 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
59, ngoại trừ các cửa sổ cấp cao nhất

Bạn đã thực hiện xong bước ba, vì vậy hãy viết mã hai bước cuối cùng và chuẩn bị cho ứng dụng PyQt GUI đầu tiên của bạn sẵn sàng hoạt động

$ brew install pyqt5
5

Tại đây, bạn gọi 

$ brew install pyqt5
26vào 
$ brew install pyqt5
50. Cuộc gọi để 
$ brew install pyqt5
26lên lịch một sự kiện sơn. Nói cách khác, nó thêm một sự kiện mới vào hàng dự kiến ​​của ứng dụng. Bạn đề cập đến vòng lặp sự kiện trong phần sau

Lưu ý. Sự kiện sơn là một yêu cầu sơn các vật liệu sử dụng để tạo GUI

Cuối cùng, bạn bắt đầu vòng lặp sự kiện của ứng dụng bằng cách gọi 

$ brew install pyqt5
29. Lệnh gọi tới 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
00được gói gọn trong lệnh gọi tới 
$ python3 -m venv pyqtvenv
$ source pyqtvenv/bin/activate
[pyqtvenv] $ pip install pyqt5
Collecting pyqt5
...
Successfully installed PyQt5-sip-4.19.17 pyqt5-5.12.2
01, cho phép bạn thoát khỏi Python một cách rõ ràng và giải nén bộ nhớ tài nguyên khi ứng dụng kết thúc. You can run 
$ brew install pyqt5
20 by the command after

Chủ Đề