Hướng dẫn electron-python github - điện tử trăn github

GUI điện tử cho Python

Một ví dụ đơn giản về cách tạo GUI điện tử cho chương trình Python và tương tác với nó.

Show

Nó hoạt động như thế nào (đại diện đơn giản)

electron
--------> |------------|    python
          |            |-------------> |-------------------|
          |  electron  |  sub process  | python program    |
          |  --------  |               | --------------    |
          |   > html   |      std      |  takes requests   |
          |   > css    | <-----------> |  from js and      |
          |   > js     | communication |  responds it,     |
          |            |               |  in the terminal  |
          |------------|               |-------------------|

Về cơ bản, không có mạng nào được tạo ra chỉ có một thiết bị đầu cuối được sử dụng khi electron được ra mắt và so với trong JavaScript (electron) Một chương trình Python được bắt đầu như một quy trình con. Hai chương trình này hơn là giao tiếp thông qua các luồng Standart.

Cấu trúc của ví dụ

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json

Hướng dẫn cài đặt

  1. Để tải xuống và cài đặt electron (OS X hoặc Linux), bạn phải tải xuống từ NPM-Electron bằng cách sử dụng:

    npm install electron --save-dev
    

    (Nếu bạn chưa cài đặt NPM, hãy sử dụng liên kết này để tải xuống.)

  2. Bản sao kho lưu trữ này:

    git clone https://github.com/keybraker/electron-GUI-for-python.git
    

Hướng dẫn thực thi

  1. Mở cửa sổ thiết bị đầu cuối và CD cho dự án nhân bản

    cd electron-GUI-for-python
    

  2. Khởi tạo aplication elcetron (lần đầu tiên)

  3. Chạy ứng dụng điện tử

  4. Một trang nên sinh sản trông như sau:

Hướng dẫn electron-python github - điện tử trăn github

  1. Nhấn nút khởi động_ nútLAUNCH PROGRAM_ button

    Điều này sẽ khởi chạy một ứng dụng Python với một vòng lặp bên trong, đang chờ dữ liệu được gửi từ JS

  2. Nhấn Tương tác bằng nút chương trìnhINTERACT WITH PROGRAM button

    Điều này sẽ gửi một tin nhắn có tên "Xin chào" từ JS đến Python và Python sẽ đọc nó và in một tin nhắn

  3. Nhấn nút Chương trình chấm dứtTERMINATE PROGRAM button

    Thông báo chấm dứt ("chấm dứt") được gửi đến chương trình biết dừng vòng lặp và thực thi

  4. Nhấn cách mở nút tệpHOW TO OPEN A FILE button

    Từ

    npm install electron --save-dev
    
    9, một thông báo ipc.send được gửi đến main.js sau đó sẽ đọc và xuất ra các giá trị
    git clone https://github.com/keybraker/electron-GUI-for-python.git
    
    0 (tính năng nhanh cho cài đặt lưu trữ).

Hướng dẫn giải thích

Chức năng quan trọng có thể được tìm thấy trong các tệp

npm install electron --save-dev
9 nơi lõi của electron. Người nghe được triển khai ở đó đang chờ các sự kiện nhấp để kích hoạt khởi tạo chương trình, giao tiếp và chấm dứt. Chương trình
git clone https://github.com/keybraker/electron-GUI-for-python.git
2 là ứng dụng bên ngoài hoặc bên thứ 3 mà Electron gọi, là một lệnh đang chờ đợi đơn giản. Nó phản hồi các lệnh và chấm dứt khi gửi một chuỗi trống, "chấm dứt" hoặc bằng cách nhấn nút kết thúc chương trình.

Tác giả

  • Ioannis Tsiakkas - (Keybraker) - Keybraker - (Keybraker) - Keybraker

Electron là GUI của các ứng dụng Python (cập nhật)

tl;dr

Bài đăng này cho thấy cách sử dụng electron làm thành phần GUI của các ứng dụng Python. . Mã hoàn chỉnh là trên repo GitHub.

Thông báo quan trọng

Tuyên bố miễn trừ trách nhiệm vào tháng 12 năm 2019: Bài viết này ban đầu được viết vào năm 2017 và tôi đã không cập nhật hoặc duy trì repo này trong một thời gian dài. Ngay bây giờ (tháng 12 năm 2019), mã trong bài viết này có thể đã lỗi thời và có thể hoặc không thể hoạt động !!!

Sau đây được sao chép từ bài viết gốc của tôi. Chắc họ giống nhau. Nếu có sự không nhất quán,

git clone https://github.com/keybraker/electron-GUI-for-python.git
4 trên repo GitHub là chính xác hơn.If there are inconsistencies, the
git clone https://github.com/keybraker/electron-GUI-for-python.git
4 on the GitHub repo is more accurate.

Bài viết gốc và các cuộc tranh luận

chú ý

Bài đăng hiện tại là phiên bản cập nhật của bài viết trước một vài năm trước đó. Người đọc không cần đọc bài trước nếu không.updated version of the previous post a few years before. Readers do NOT need to read the previous post if haven't.

tranh luận

Tôi không mong đợi rằng bài viết trước đã thu hút rất nhiều khách truy cập. Một số người khác thậm chí còn đăng nó trên Hacker News và Reddit. Bài viết trước cũng thu hút một số lời chỉ trích. Ở đây tôi muốn chia sẻ câu trả lời của tôi cho một số cuộc tranh luận.

Bạn có biết
git clone https://github.com/keybraker/electron-GUI-for-python.git
5,
git clone https://github.com/keybraker/electron-GUI-for-python.git
6,
git clone https://github.com/keybraker/electron-GUI-for-python.git
7 (
git clone https://github.com/keybraker/electron-GUI-for-python.git
8 và
git clone https://github.com/keybraker/electron-GUI-for-python.git
9),
cd electron-GUI-for-python
0,
cd electron-GUI-for-python
1,
cd electron-GUI-for-python
2, ...?

Vâng, tôi biết ít nhất là sự tồn tại của họ và thử một vài trong số họ. Tôi vẫn nghĩ

git clone https://github.com/keybraker/electron-GUI-for-python.git
7 là tốt nhất trong số họ. BTW,
cd electron-GUI-for-python
4 là một trong những ràng buộc tích cực duy trì cho Python. Tôi chỉ cung cấp một cách khác theo định hướng "công nghệ web" ở đây.

... và
cd electron-GUI-for-python
5.

Nó ít nhiều ở mức "cấp thấp hơn" so với nơi electron. Ví dụ,

git clone https://github.com/keybraker/electron-GUI-for-python.git
8 dựa trên nó.

Tôi có thể trực tiếp viết những thứ trong JavaScript!

Chính xác. Trừ khi một số thư viện như

cd electron-GUI-for-python
7 không có sẵn trong JS. Hơn nữa, ý định ban đầu là sử dụng các công nghệ Electron / JavaScript / Web để tăng cường các ứng dụng Python.enhance Python Applications.

Tôi có thể sử dụng
cd electron-GUI-for-python
8.

Hãy tiếp tục và thử nó. Nhưng vì bạn đang sử dụng "Web Engine", tại sao cũng không thử Electron?

Bạn có hai Runtimes!

Đúng. Một cho JavaScript và một cho Python. Thật không may, Python và JavaScript là các ngôn ngữ động, thường cần hỗ trợ thời gian chạy.

các kiến ​​trúc và sự lựa chọn

Trong bài trước, tôi đã cho thấy một kiến ​​trúc ví dụ: Python để xây dựng một máy chủ

cd electron-GUI-for-python
9, thì Electron chỉ là một trình duyệt web cục bộ.

start
 |
 V
+------------+
|            | start
|            +-------------> +-------------------+
|  electron  | sub process   |                   |
|            |               | python web server |
| (basically |     http      |                   |
|  browser)  | <-----------> | (business logic)  |
|            | communication |                   |
|            |               | (all html/css/js) |
|            |               |                   |
+------------+               +-------------------+

Đó chỉ là một giải pháp không hiệu quả.just one not-so-efficient solution.

Hãy xem xét lại các nhu cầu cốt lõi ở đây: Chúng tôi có một ứng dụng Python và ứng dụng Node.js (electron). Làm thế nào để kết hợp chúng và giao tiếp với nhau?

Chúng tôi thực sự cần một cơ chế giao tiếp giữa các quá trình (IPC). Nó là không thể tránh khỏi trừ khi Python và JavaScript có trực tiếp

start
 |
 V
+------------+
|            | start
|            +-------------> +-------------------+
|  electron  | sub process   |                   |
|            |               | python web server |
| (basically |     http      |                   |
|  browser)  | <-----------> | (business logic)  |
|            | communication |                   |
|            |               | (all html/css/js) |
|            |               |                   |
+------------+               +-------------------+
0 cho nhau. It is unavoidable unless Python and JavaScript have direct
start
 |
 V
+------------+
|            | start
|            +-------------> +-------------------+
|  electron  | sub process   |                   |
|            |               | python web server |
| (basically |     http      |                   |
|  browser)  | <-----------> | (business logic)  |
|            | communication |                   |
|            |               | (all html/css/js) |
|            |               |                   |
+------------+               +-------------------+
0 for each other.

HTTP chỉ là một trong những cách phổ biến để thực hiện IPC và đó chỉ là điều đầu tiên xuất hiện trong tâm trí tôi khi tôi viết bài trước.

Chúng tôi có nhiều lựa chọn hơn.

Chúng ta có thể (và nên) sử dụng

start
 |
 V
+------------+
|            | start
|            +-------------> +-------------------+
|  electron  | sub process   |                   |
|            |               | python web server |
| (basically |     http      |                   |
|  browser)  | <-----------> | (business logic)  |
|            | communication |                   |
|            |               | (all html/css/js) |
|            |               |                   |
+------------+               +-------------------+
1. Sau đó, dựa trên đó, chúng tôi muốn một lớp nhắn tin trừu tượng có thể được triển khai với
start
 |
 V
+------------+
|            | start
|            +-------------> +-------------------+
|  electron  | sub process   |                   |
|            |               | python web server |
| (basically |     http      |                   |
|  browser)  | <-----------> | (business logic)  |
|            | communication |                   |
|            |               | (all html/css/js) |
|            |               |                   |
+------------+               +-------------------+
2 là một trong những thư viện nhắn tin tốt nhất. Hơn nữa, dựa trên đó, chúng ta cần xác định một số lược đồ trên dữ liệu thô có thể được thực hiện với
git clone https://github.com/keybraker/electron-GUI-for-python.git
3.

.

Do đó, trong bài đăng này, tôi sẽ hiển thị một ví dụ khác bằng cách sử dụng

git clone https://github.com/keybraker/electron-GUI-for-python.git
3 để giao tiếp như sau, điều này sẽ hiệu quả hơn so với những gì tôi đã trình bày trong bài viết trước của mình.

start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+

sự chuẩn bị

Chú ý: Ví dụ có thể được chạy thành công trên máy Windows 10 của tôi với Python 3.6, Electron 1.7, Node.js v6.

Chúng tôi cần ứng dụng Python,

start
 |
 V
+------------+
|            | start
|            +-------------> +-------------------+
|  electron  | sub process   |                   |
|            |               | python web server |
| (basically |     http      |                   |
|  browser)  | <-----------> | (business logic)  |
|            | communication |                   |
|            |               | (all html/css/js) |
|            |               |                   |
+------------+               +-------------------+
7,
start
 |
 V
+------------+
|            | start
|            +-------------> +-------------------+
|  electron  | sub process   |                   |
|            |               | python web server |
| (basically |     http      |                   |
|  browser)  | <-----------> | (business logic)  |
|            | communication |                   |
|            |               | (all html/css/js) |
|            |               |                   |
+------------+               +-------------------+
8,
start
 |
 V
+------------+
|            | start
|            +-------------> +-------------------+
|  electron  | sub process   |                   |
|            |               | python web server |
| (basically |     http      |                   |
|  browser)  | <-----------> | (business logic)  |
|            | communication |                   |
|            |               | (all html/css/js) |
|            |               |                   |
+------------+               +-------------------+
9,
start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
0, có sẵn trong dòng lệnh. Để sử dụng
git clone https://github.com/keybraker/electron-GUI-for-python.git
3, chúng tôi cũng cần các trình biên dịch C/C ++ (
start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
2 và
start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
3 trong dòng lệnh và/hoặc MSVC trên Windows).

Cấu trúc của dự án này là

.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md

Như được hiển thị ở trên, ứng dụng Python được bọc trong một thư mục con. Trong ví dụ này, ứng dụng Python

start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
4 cung cấp một hàm:
start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
5 có thể lấy một văn bản như
start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
6 và trả về kết quả như
start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
7 (giả sử nó giống như
start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
8).
start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
9 là những gì chúng ta sẽ tìm ra.

.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
0,
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
1,
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
2 và
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
3 được sửa đổi từ
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
4.

Phần Python

Trước hết, vì chúng tôi đã chạy ứng dụng Python, môi trường Python sẽ ổn. Tôi thực sự khuyên bạn nên phát triển các ứng dụng Python trong

.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
5.

Hãy thử cài đặt

git clone https://github.com/keybraker/electron-GUI-for-python.git
3 và
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
7 (để đóng gói). Trên Linux / Ubuntu, chúng ta có thể cần phải chạy
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
8 trước
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
9.before
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
9.

pip install zerorpc
pip install pyinstaller

# for windows only
pip install pypiwin32 # for pyinstaller

Nếu được cấu hình đúng, các lệnh trên sẽ không có vấn đề gì. Nếu không, xin vui lòng kiểm tra các hướng dẫn trực tuyến.

Node.js / phần điện tử

Thứ hai, cố gắng định cấu hình Node.js và môi trường electron. Tôi giả sử rằng

start
 |
 V
+------------+
|            | start
|            +-------------> +-------------------+
|  electron  | sub process   |                   |
|            |               | python web server |
| (basically |     http      |                   |
|  browser)  | <-----------> | (business logic)  |
|            | communication |                   |
|            |               | (all html/css/js) |
|            |               |                   |
+------------+               +-------------------+
9 và
start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
0 có thể được gọi trong dòng lệnh và là của các phiên bản mới nhất.

Chúng ta cần cấu hình

.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
2, đặc biệt là mục
pip install zerorpc
pip install pyinstaller

# for windows only
pip install pypiwin32 # for pyinstaller
3:

{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}

Làm sạch bộ nhớ cache:

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
0

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
1

Sau đó chạy

start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
0:

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
2

pip install zerorpc
pip install pyinstaller

# for windows only
pip install pypiwin32 # for pyinstaller
5 sẽ cài đặt
pip install zerorpc
pip install pyinstaller

# for windows only
pip install pypiwin32 # for pyinstaller
6 từ ngã ba của tôi để bỏ qua tòa nhà từ các nguồn. Cập nhật: Yêu cầu kéo của
pip install zerorpc
pip install pyinstaller

# for windows only
pip install pypiwin32 # for pyinstaller
6 đã được hợp nhất để mọi người được khuyến khích sử dụng repo chính thức thay thế.

(Xem xét thêm

pip install zerorpc
pip install pyinstaller

# for windows only
pip install pypiwin32 # for pyinstaller
8 vào thư mục dự án nếu cần thiết.)

Tất cả các thư viện sẽ ổn bây giờ.

Tùy chọn: Xây dựng từ các nguồn

Nếu cài đặt ở trên gây ra bất kỳ lỗi nào ngay cả khi đặt phiên bản electron một cách chính xác, chúng ta có thể phải xây dựng các gói từ các nguồn.even while setting the electron version correctly, we may have to build the packages from sources.

Trớ trêu thay, để biên dịch các mã gốc của Node.js C/C ++, chúng ta cần phải cấu hình

pip install zerorpc
pip install pyinstaller

# for windows only
pip install pypiwin32 # for pyinstaller
9, bất kể phiên bản Python nào chúng ta đang sử dụng cho ứng dụng Python của chúng ta. Kiểm tra hướng dẫn chính thức.

Đặc biệt, nếu làm việc trên Windows, Open PowerShell làm quản trị viên và chạy

{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
0 để cài đặt Python 2.7 tách biệt trong
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
1 và các thư viện VS cần thiết khác. Chúng ta chỉ cần làm điều đó cùng một lúc.as Administrator, and run
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
0 to install a separated Python 2.7 in
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
1 and other required VS libraries. We only need to do it at once.

Sau đó, Clean

{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
2 và
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
3 Cache như mô tả ở trên lúc đầu.clean
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
2 and
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
3 caches as described above at first.

Đặt

start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
0 cho electron và cài đặt các thư viện cần thiết.

Đặt các biến môi trường cho Linux (Ubuntu) / OS X / Windows:

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
3

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
4

Sau đó cài đặt mọi thứ:

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
5

(Xem xét thêm

pip install zerorpc
pip install pyinstaller

# for windows only
pip install pypiwin32 # for pyinstaller
8 vào thư mục dự án nếu cần thiết.)

Tất cả các thư viện sẽ ổn bây giờ.

Tùy chọn: Xây dựng từ các nguồn

Nếu cài đặt ở trên gây ra bất kỳ lỗi nào ngay cả khi đặt phiên bản electron một cách chính xác, chúng ta có thể phải xây dựng các gói từ các nguồn.

Trớ trêu thay, để biên dịch các mã gốc của Node.js C/C ++, chúng ta cần phải cấu hình

pip install zerorpc
pip install pyinstaller

# for windows only
pip install pypiwin32 # for pyinstaller
9, bất kể phiên bản Python nào chúng ta đang sử dụng cho ứng dụng Python của chúng ta. Kiểm tra hướng dẫn chính thức.

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
6

Đặc biệt, nếu làm việc trên Windows, Open PowerShell làm quản trị viên và chạy

{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
0 để cài đặt Python 2.7 tách biệt trong
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
1 và các thư viện VS cần thiết khác. Chúng ta chỉ cần làm điều đó cùng một lúc.open another terminal, run this command and see the result:

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
7

Sau đó, Clean

{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
2 và
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
3 Cache như mô tả ở trên lúc đầu.remember to terminate the Python function.

Đặt

start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
0 cho electron và cài đặt các thư viện cần thiết.server, communicated over
│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
01 over TCP, rather than traditional web server over HTTP.

Node.js / phần điện tử

Đặt các biến môi trường cho Linux (Ubuntu) / OS X / Windows:

Sau đó cài đặt mọi thứ:

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
8

các chức năng cốt lõi

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
9

Phần Python

npm install electron --save-dev
0

Chúng tôi muốn xây dựng một máy chủ Zeromq ở Python End.client, and the code for watching the changes in the input. Once the user types some formula into the text area, the JS send the text to Python backend and retrieve the computed result.

npm install electron --save-dev
1

Đặt { "name": "pretty-calculator", "main": "main.js", "scripts": { "start": "electron ." }, "dependencies": { "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git" }, "devDependencies": { "electron": "^1.7.6", "electron-packager": "^9.0.1" } }6 vào thư mục { "name": "pretty-calculator", "main": "main.js", "scripts": { "start": "electron ." }, "dependencies": { "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git" }, "devDependencies": { "electron": "^1.7.6", "electron-packager": "^9.0.1" } }7. Sau đó tạo một tệp khác start | V +--------------------+ | | start | electron +-------------> +------------------+ | | sub process | | | (browser) | | python server | | | | | | (all html/css/js) | | (business logic) | | | zerorpc | | | (node.js runtime, | <-----------> | (zeromq server) | | zeromq client) | communication | | | | | | +--------------------+ +------------------+ 9. Kiểm tra { "name": "pretty-calculator", "main": "main.js", "scripts": { "start": "electron ." }, "dependencies": { "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git" }, "devDependencies": { "electron": "^1.7.6", "electron-packager": "^9.0.1" } }9 để tham khảo.

Để kiểm tra tính chính xác, chạy

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
00 trong một thiết bị đầu cuối. Sau đó mở một thiết bị đầu cuối khác, chạy lệnh này và xem kết quả:

npm install electron --save-dev
2

Awesome!

Sau khi gỡ lỗi, hãy nhớ chấm dứt chức năng Python.

npm install electron --save-dev
3

Trên thực tế, đây là một máy chủ khác, được truyền đạt qua │ ├── docs │ ├── README.md │ └── LICENSE | ├── img │ └── example.png | ├── gui_example.html ├── gui_example.css ├── gui_example.js ├── main.js │ ├── python_example.py | ├── config.json └── package.json 01 qua TCP, thay vì máy chủ web truyền thống qua HTTP.

Ý tưởng cơ bản: Trong quy trình chính, sinh ra quy trình con Python và tạo cửa sổ. Trong quy trình kết xuất, hãy sử dụng thư viện Rode.js Rand Time và

git clone https://github.com/keybraker/electron-GUI-for-python.git
3 để liên lạc với quy trình Python Child. Tất cả HTML / JavaScript / CSS được quản lý bằng electron, thay vì bởi máy chủ web Python (ví dụ trong bài trước đã sử dụng máy chủ web Python để tạo mã HTML tự động).

Tùy chọn: Xây dựng từ các nguồn

Nếu cài đặt ở trên gây ra bất kỳ lỗi nào ngay cả khi đặt phiên bản electron một cách chính xác, chúng ta có thể phải xây dựng các gói từ các nguồn.

Trớ trêu thay, để biên dịch các mã gốc của Node.js C/C ++, chúng ta cần phải cấu hình

pip install zerorpc
pip install pyinstaller

# for windows only
pip install pypiwin32 # for pyinstaller
9, bất kể phiên bản Python nào chúng ta đang sử dụng cho ứng dụng Python của chúng ta. Kiểm tra hướng dẫn chính thức.

npm install electron --save-dev
4

Đặc biệt, nếu làm việc trên Windows, Open PowerShell làm quản trị viên và chạy

{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
0 để cài đặt Python 2.7 tách biệt trong
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
1 và các thư viện VS cần thiết khác. Chúng ta chỉ cần làm điều đó cùng một lúc.

Sau đó, Clean

{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
2 và
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
3 Cache như mô tả ở trên lúc đầu.
Because the target machine we want to distribute to may not have correct Python shell and/or required Python libraries. It's almost impossible to just copy the Python source codes.

Node.js / phần điện tử

Đặt

start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
0 cho electron và cài đặt các thư viện cần thiết.

Đặt các biến môi trường cho Linux (Ubuntu) / OS X / Windows:

npm install electron --save-dev
5

Sau đó cài đặt mọi thứ:we should no longer

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
10 Python script. Instead, we should
│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
11 the generated excutable
.

các chức năng cốt lõi

Phần Python

npm install electron --save-dev
6

Chúng tôi muốn xây dựng một máy chủ Zeromq ở Python End.

npm install electron --save-dev
7

Đặt

{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
6 vào thư mục
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
7. Sau đó tạo một tệp khác
start
 |
 V
+--------------------+
|                    | start
|  electron          +-------------> +------------------+
|                    | sub process   |                  |
| (browser)          |               | python server    |
|                    |               |                  |
| (all html/css/js)  |               | (business logic) |
|                    |   zerorpc     |                  |
| (node.js runtime,  | <-----------> | (zeromq server)  |
|  zeromq client)    | communication |                  |
|                    |               |                  |
+--------------------+               +------------------+
9. Kiểm tra
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
9 để tham khảo.

Cuối cùng, chạy

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
17 để tạo ứng dụng đi kèm. Chúng tôi cũng muốn loại trừ một số thư mục (ví dụ:
{
  "name": "pretty-calculator",
  "main": "main.js",
  "scripts": {
    "start": "electron ."
  },
  "dependencies": {
    "zerorpc": "git+https://github.com/0rpc/zerorpc-node.git"
  },
  "devDependencies": {
    "electron": "^1.7.6",
    "electron-packager": "^9.0.1"
  }
}
7 không còn cần phải được gói), sử dụng Regex (thay vì GLOB, bất ngờ!). Tên, nền tảng và vòm được suy ra từ
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
2. Để biết thêm các lựa chọn, hãy kiểm tra các tài liệu.using regex (instead of glob, surprise!). The name, platform, and arch are inferred from
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
2. For more options, check out the docs.

npm install electron --save-dev
8

Tôi không kiểm tra tính khả dụng của định dạng

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
20. Tôi đoán nó sẽ làm chậm tốc độ khởi động.

Sau đó, chúng tôi có electron đóng gói được tạo ra trong thư mục hiện tại! Đối với tôi, kết quả là

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
21. Trên máy của tôi, nó khoảng 170 MB (bản thân điện tử chiếm hơn 84,2 MB). Tôi cũng đã cố gắng nén nó, tệp
│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
22 được tạo là khoảng 43,3 MB.

Sao chép / Di chuyển (các) thư mục đến bất cứ đâu hoặc máy khác để kiểm tra kết quả! :-)

Câu hỏi thường gặp hơn nữa

Mã đầy đủ?

Xem GitHub

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
23.

giải pháp cho lỗi

Vấn đề #6:

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
24

Vấn đề #7:

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
25

Gỡ cài đặt tất cả mọi thứ, thiết lập các biến môi trường NPM một cách chính xác, đặc biệt là cho phiên bản electron, hãy nhớ

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
26 VirtualEnv nếu sử dụng Python
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
5.set up the npm environment variables correctly especially for the electron version, remember to
│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
26 the virtualenv if using Python
.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
5.

Tối ưu hóa hơn nữa?

Cắt một số tệp không cần thiết trong Python có thể thực thi bằng cách định cấu hình

.
|-- index.html
|-- main.js
|-- package.json
|-- renderer.js
|
|-- pycalc
|   |-- api.py
|   |-- calc.py
|   `-- requirements.txt
|
|-- LICENSE
`-- README.md
7 hơn nữa. Trim electron (có thể không?). Sử dụng các phương thức IPC thậm chí nhanh hơn (mặc dù
│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
29 là một trong những phương thức nhanh nhất trong hầu hết các trường hợp).

Hơn nữa, sử dụng qt (huh ??), viết lại các mã cần thiết trong node.js / go / c / c ++ (huh ??). Bạn đặt tên cho nó.

Tôi có thể sử dụng các ngôn ngữ lập trình khác ngoài Python không?

Chắc chắn rồi. Giải pháp được mô tả ở đây cũng có thể được áp dụng cho bất kỳ ngôn ngữ lập trình nào khác ngoài Python. Ngoại trừ, nếu bạn muốn sử dụng electron làm GUI của các ứng dụng C/C ++, tôi thực sự khuyên bạn nên sử dụng cơ chế giao tiếp C/C ++ gốc của Node.js thay vì sử dụng IPC. Hơn nữa, nếu bạn có ứng dụng Java, C#, sử dụng

│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
30 hoặc
│ 
├── docs
│   ├── README.md
│   └── LICENSE
|
├── img
│   └── example.png
|
├── gui_example.html
├── gui_example.css
├── gui_example.js
├── main.js
│ 
├── python_example.py
| 
├── config.json
└── package.json
31 là những lựa chọn trưởng thành hơn nhiều.

Nhưng, thật không may, Electron không dành cho các ứng dụng di động và nó không có ý nghĩa gì ngay cả khi có thể. Vui lòng sử dụng GUI gốc trên các nền tảng đó.

Kết luận và suy nghĩ thêm

Đó vẫn là một giải pháp đầy hứa hẹn. Để vẽ giao diện, chúng tôi muốn sử dụng một số ngôn ngữ đánh dấu cho UI khai báo. HTML tình cờ là một trong những lựa chọn tốt nhất và những người bạn đồng hành của nó JS và CSS có một trong những trình kết xuất được tối ưu hóa nhất: trình duyệt web. Đó là lý do tại sao tôi (vì vậy) quan tâm đến việc sử dụng các công nghệ web cho GUI khi có thể. Một vài năm trước khi các trình duyệt web không đủ mạnh, nhưng câu chuyện bây giờ là loại khác.

Tôi hy vọng bài viết này là hữu ích cho bạn.