Ứng dụng này là sân chơi dành cho các nhà phát triển Python muốn dùng thử Python và Toga trên thiết bị di động mà không cần thiết lập môi trường phát triển trên máy tính để bàn với chuỗi công cụ hoàn chỉnh
Bạn có thể sử dụng tất cả các tính năng của Python 3. 9 và thư viện UI Toga [www. đồ đựng thức ăn. org] để tùy chỉnh ứng dụng này. Thông qua rubicon đi kèm. java, bạn cũng có thể truy cập và sử dụng Android API
Ứng dụng này cũng có sẵn cho các nền tảng khác [xem www. tanapro. ch > Tải xuống]
BeeWare là một thư viện Python được sử dụng để tạo các ứng dụng đa nền tảng. Nó đóng vai trò thay thế cho các thư viện xây dựng ứng dụng khác như Kivy
Bài viết này sẽ xây dựng một ứng dụng đơn giản sử dụng BeeWare để giới thiệu đến bạn đọc thư viện và đánh giá cách thức hoạt động của nó
điều kiện tiên quyết
4 được cài đặt trong máy của bạnimport toga from toga.style import Pack from toga.style.pack import COLUMN, ROW class SimpleCalculator[toga.App]: def startup[self]: main_box = toga.Box[] self.main_window = toga.MainWindow[title=self.formal_name] self.main_window.content = main_box self.main_window.show[] def main[]: return SimpleCalculator[]
- Cài đặt
5 vàimport toga from toga.style import Pack from toga.style.pack import COLUMN, ROW class SimpleCalculator[toga.App]: def startup[self]: main_box = toga.Box[] self.main_window = toga.MainWindow[title=self.formal_name] self.main_window.content = main_box self.main_window.show[] def main[]: return SimpleCalculator[]
6. Chạyimport toga from toga.style import Pack from toga.style.pack import COLUMN, ROW class SimpleCalculator[toga.App]: def startup[self]: main_box = toga.Box[] self.main_window = toga.MainWindow[title=self.formal_name] self.main_window.content = main_box self.main_window.show[] def main[]: return SimpleCalculator[]
7 vàimport toga from toga.style import Pack from toga.style.pack import COLUMN, ROW class SimpleCalculator[toga.App]: def startup[self]: main_box = toga.Box[] self.main_window = toga.MainWindow[title=self.formal_name] self.main_window.content = main_box self.main_window.show[] def main[]: return SimpleCalculator[]
8 để cài đặt chúng tương ứngimport toga from toga.style import Pack from toga.style.pack import COLUMN, ROW class SimpleCalculator[toga.App]: def startup[self]: main_box = toga.Box[] self.main_window = toga.MainWindow[title=self.formal_name] self.main_window.content = main_box self.main_window.show[] def main[]: return SimpleCalculator[]
- Kiến thức Python cơ bản
- Một kết nối internet tốt
Bắt đầu
Hướng dẫn này sẽ tạo một ứng dụng máy tính đơn giản
Tiếp theo, điều hướng vào một thư mục bạn chọn bằng thiết bị đầu cuối, sau đó thực hiện lệnh
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
9Lệnh này sẽ tạo một ứng dụng mới trong thư mục đó. Làm theo hướng dẫn và nhập các chi tiết được yêu cầu hoặc nhấn liên tục enter để đi với cấu hình mặc định
Ứng dụng mới nên có cấu trúc sau
.
├── LICENSE
├── pyproject.toml
├── README.rst
└── src
├── simplecalculator
│ ├── app.py
│ ├── __init__.py
│ ├── __main__.py
│ └── resources
│ ├── __init__.py
│ ├── simplecalculator.icns
│ ├── simplecalculator.ico
│ └── simplecalculator.png
└── simplecalculator.dist-info
├── INSTALLER
└── METADATA
Thư mục
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
0 có các tệp cần thiết để chạy ứng dụng. Tất cả logic để chạy ứng dụng được tìm thấy trong import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
1. import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
1 sẽ trông như sauimport toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
Tệp bắt đầu bằng cách nhập bộ công cụ
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
6. import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
4 là bộ công cụ Giao diện người dùng đồ họa [GUI] đa nền tảng của PythonTiếp theo, định nghĩa một lớp
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
5 có chứa một phương thức import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
6. Phương pháp này định nghĩa một thành phần import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
7. Nó phục vụ như hộp chínhTên
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
8 được mặc định khai báo và khởi tạo khi bạn tạo ứng dụng nhưng có thể thay đổi sau này nếu muốnKhai báo cửa sổ chính có tiêu đề là tên app được xác định khi tạo app bằng lệnh
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
9Tiếp theo, chúng tôi có ứng dụng hiển thị cửa sổ chứa hộp chính trống của chúng tôi làm nội dung của nó. Cuối cùng, định nghĩa một hàm
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
00 trả về thể hiện lớp import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
5 của chúng ta. Phương thức import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
00 này được gọi và gọi bởi tệp import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
03Đến bây giờ, bạn có một ứng dụng làm việc đơn giản. Bạn có thể thay đổi thư mục thành
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
04 và gõ import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
05 để chạy ứng dụng ở chế độ nhà phát triển. Bạn nên có ứng dụng đơn giản sauThiết lập các hộp
Sửa đổi tệp
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
1 để từng bước tạo ứng dụng máy tính cuối cùng của chúng tôi. Bắt đầu bằng cách xác định tất cả các thành phần hộp cần thiết được yêu cầu. Sửa đổi tệp import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
1 như sauimport toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
0Chúng tôi đã tạo sáu hộp phụ và một hộp chính với tất cả sáu hộp bên trong. Chúng tôi có hộp chính dưới dạng hộp cột, nghĩa là nó sẽ có tất cả chiều rộng theo mặc định trừ khi được xác định và chiều cao sẽ mở rộng theo nội dung trong hộp
Trong phần tiếp theo, chúng ta sẽ có mỗi hộp chứa các số và toán tử, ngoài hai hộp sẽ có trường nhập liệu và nút tính toán tương ứng. Khi bạn chạy ứng dụng, bạn sẽ không thấy bất kỳ thay đổi nào
Đặt các nút
Bây giờ hãy thiết lập các số, toán tử và các nút tính toán. Chúng tôi cũng sẽ có một hộp cho một văn bản đầu vào. Chỉnh sửa
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
1 để xuất hiện như sauimport toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
0Chúng tôi đã xác định tất cả các nút cần thiết để làm cho ứng dụng của chúng tôi. Mỗi nút là một nút toga với một số nút có một chút đệm ở trên cùng hoặc bên trái hoặc cả hai
Có một phương thức gọi lại
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
09 được xác định trong cùng các nút. Chúng tôi sử dụng một hàm do lớp định nghĩa import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
00 nhận vào một số hoặc một toán hạng chẳng hạn như import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
01, import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
02, import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
03, import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
04, import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
05 và import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
06. và nối nó vào giá trị đầu vàoSau đó, chúng tôi sử dụng hàm dựng sẵn
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
07 trong Python nhận một hàm và một số đầu vào được điền sẵn để trả về một hàm được điền đầy đủ. Hàm một phần của chúng tôi lấy hàm import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
00 của chúng tôi và một giá trị số cho tham số cuối cùng của hàm. Khi được nhấn, nút import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
09 cũng gọi hàm import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
40Hàm
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
40 lấy biểu thức của chúng ta được đánh giá bởi hàm import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
00 và tạo ra kết quả bằng cách sử dụng hàm dựng sẵn của Python import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
43. Hàm import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
43 lấy một biểu thức làm đầu vào và trả về kết quả biểu thức làm đầu raChúng tôi đã thêm các nút của mình vào các hộp khác nhau được xác định trước đó. Chúng tôi đã bắt đầu bằng cách thêm văn bản đầu vào vào
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
45. Tiếp theo, chúng tôi đã thêm nút import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
09 vào ________ 347, sau đó thêm các nút ________ 348, ________ 349, _______ 350 và import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
51 vào import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
52. Cuối cùng, chúng tôi đã thêm các nút 4,5,6 và dấu trừ vào import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
53. Sau đó, tất cả các nút cần thiết được thêm vào tương tựCuối cùng khi chúng tôi chạy ứng dụng của mình, chúng tôi có đầu ra sau.
Phần kết luận
Tại thời điểm này, bạn đã có một máy tính hoạt động đơn giản được tạo bằng BeeWare đang chạy ở chế độ nhà phát triển
Tuy nhiên, nếu bạn muốn ứng dụng của mình chạy trên điện thoại di động, bạn nên truy cập Tài liệu BeeWare để được hướng dẫn. Tài liệu này cũng chứa thông tin chi tiết về cách thức hoạt động của
import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
5 khi sử dụng import toga
from toga.style import Pack
from toga.style.pack import COLUMN, ROW
class SimpleCalculator[toga.App]:
def startup[self]:
main_box = toga.Box[]
self.main_window = toga.MainWindow[title=self.formal_name]
self.main_window.content = main_box
self.main_window.show[]
def main[]:
return SimpleCalculator[]
6