Xây dựng ứng dụng Python cho Windows
Một cách dễ dàng để thêm Python vào đường dẫn là tải xuống phiên bản Python mới nhất, sau đó chọn hộp 'Thêm Python vào PATH' khi bắt đầu cài đặt Show
Thêm Python vào PATH Hoàn tất quá trình cài đặt và bạn có thể sử dụng được Bước 2. Cài đặt gói PyInstallerTiếp theo, mở Windows Command Prompt, rồi gõ lệnh sau để cài đặt gói PyInstaller pip install pyinstaller Bước 3. Lưu tập lệnh Python của bạnBây giờ hãy lưu tập lệnh Python của bạn tại vị trí bạn muốn Để minh họa, hãy tạo một tập lệnh Python đơn giản hiển thị 'Xin chào thế giới. ’ khi nhấp vào một nút import tkinter as tk root= tk.Tk() canvas1 = tk.Canvas(root, width = 300, height = 300) canvas1.pack() def hello (): label1 = tk.Label(root, text= 'Hello World!', fg='blue', font=('helvetica', 12, 'bold')) canvas1.create_window(150, 200, window=label1) button1 = tk.Button(text='Click Me', command=hello, bg='brown',fg='white') canvas1.create_window(150, 150, window=button1) root.mainloop() Đối với mục đích trình diễn, giả sử rằng tập lệnh Python được lưu trữ trong thư mục sau C. \Users\Ron\Desktop\Test Trong đó tập lệnh Python được gọi là 'xin chào' và phần mở rộng tệp là '. py‘ Bước 4. Tạo tệp thực thi bằng PyInstallerBây giờ bạn sẽ có thể tạo tệp thực thi của tập lệnh Python bằng PyInstaller Chỉ cần vào Command Prompt, rồi gõ cd theo sau là vị trí lưu trữ tập lệnh Python của bạn Đây là lệnh cho ví dụ của chúng tôi C. \Users\Ron> cd C. \Users\Ron\Desktop\Test Nhấn Enter (sau khi bạn nhập vị trí lưu trữ tập lệnh Python trên máy tính của bạn) Sau đó, tham khảo mẫu sau để tạo tệp thực thi pyinstaller --onefile pythonScriptName.py Vì trong ví dụ của chúng tôi, tên pythonScriptName là 'xin chào' (và phần mở rộng tệp là. py), thì lệnh để tạo tệp thực thi là pyinstaller --onefile hello.py Nhấn Enter lần cuối Bước 5. Chạy tệp thực thiTệp thực thi của bạn sẽ được tạo tại vị trí mà bạn đã chỉ định Ví dụ của chúng tôi, nó sẽ nằm trong cùng thư mục nơi tập lệnh 'xin chào' ban đầu được lưu trữ C. \Users\Ron\Desktop\Test Bạn sẽ nhận thấy rằng một số tệp bổ sung đã được tạo tại vị trí đó Để tìm tệp thực thi, hãy mở thư mục dist. Sau đó, bạn sẽ thấy tệp thi hành xin chào Nhấp đúp vào tệp và bạn sẽ có thể khởi chạy chương trình của mình (nếu bạn nhận được thông báo lỗi, bạn có thể cần phải cài đặt Visual C++ Redistributable) Có nhiều bộ công cụ giao diện người dùng đồ họa (GUI) mà bạn có thể sử dụng với ngôn ngữ lập trình Python. Ba công ty lớn là Tkinter, wxPython và PyQt. Mỗi bộ công cụ này sẽ hoạt động với Windows, macOS và Linux, với PyQt có thêm khả năng hoạt động trên thiết bị di động Giao diện người dùng đồ họa là một ứng dụng có các nút, cửa sổ và nhiều tiện ích khác mà người dùng có thể sử dụng để tương tác với ứng dụng của bạn. Một ví dụ điển hình sẽ là một trình duyệt web. Nó có các nút, tab và cửa sổ chính nơi tải tất cả nội dung Trong bài viết này, bạn sẽ tìm hiểu cách xây dựng giao diện người dùng đồ họa với Python bằng bộ công cụ GUI wxPython Dưới đây là các chủ đề được đề cập
Hãy bắt đầu học Tải xuống miễn phí. Nhận một chương mẫu từ Thủ thuật Python. Cuốn sách chỉ cho bạn các phương pháp hay nhất về Python với các ví dụ đơn giản mà bạn có thể áp dụng ngay lập tức để viết mã Pythonic + đẹp hơn Bắt đầu với wxPythonBộ công cụ GUI wxPython là một trình bao bọc Python xung quanh thư viện C++ có tên wxWidgets. Bản phát hành đầu tiên của wxPython là vào năm 1998, vì vậy wxPython đã có từ khá lâu. Điểm khác biệt chính của wxPython so với các bộ công cụ khác, chẳng hạn như PyQt hoặc Tkinter, là wxPython sử dụng các widget thực tế trên nền tảng gốc bất cứ khi nào có thể. Điều này làm cho các ứng dụng wxPython giống với hệ điều hành mà nó đang chạy trên đó PyQt và Tkinter đều tự vẽ các widget của họ, đó là lý do tại sao chúng không phải lúc nào cũng khớp với các widget gốc, mặc dù PyQt rất gần Điều này không có nghĩa là wxPython không hỗ trợ các widget tùy chỉnh. Trên thực tế, bộ công cụ wxPython có nhiều tiện ích tùy chỉnh đi kèm với nó, cùng với hàng tá tiện ích cốt lõi. Trang tải xuống wxPython có một phần gọi là Tệp bổ sung đáng để kiểm tra Tại đây, có bản tải xuống gói wxPython Demo. Đây là một ứng dụng nhỏ xinh thể hiện phần lớn các tiện ích đi kèm với wxPython. Bản demo cho phép nhà phát triển xem mã trong một tab và chạy nó trong tab thứ hai. Bạn thậm chí có thể chỉnh sửa và chạy lại mã trong bản demo để xem những thay đổi của bạn ảnh hưởng đến ứng dụng như thế nào Loại bỏ các quảng cáoCài đặt wxPythonBạn sẽ sử dụng wxPython mới nhất cho bài viết này, đó là wxPython 4, còn được gọi là bản phát hành Phoenix. Các phiên bản wxPython 3 và wxPython 2 chỉ được xây dựng cho Python 2. Khi Robin Dunn, người bảo trì chính của wxPython, tạo bản phát hành wxPython 4, anh ấy đã loại bỏ rất nhiều bí danh và dọn sạch rất nhiều mã để làm cho wxPython Pythonic hơn và dễ bảo trì hơn Bạn sẽ muốn tham khảo các liên kết sau nếu bạn đang di chuyển từ phiên bản wxPython cũ hơn sang wxPython 4 (Phoenix)
Gói wxPython 4 tương thích với cả Python 2. 7 và Trăn 3 Bây giờ bạn có thể sử dụng 7 để cài đặt wxPython 4, điều không thể thực hiện được trong các phiên bản cũ của wxPython. Bạn có thể làm như sau để cài đặt nó trên máy của bạn
Ghi chú. Trên Mac OS X, bạn sẽ cần cài đặt một trình biên dịch chẳng hạn như XCode để quá trình cài đặt hoàn tất thành công. Linux cũng có thể yêu cầu bạn cài đặt một số phụ thuộc trước khi trình cài đặt 7 hoạt động chính xácVí dụ: tôi cần cài đặt freeglut3-dev, libgstreamer-plugins-base0. 10-dev và libwebkitgtk-3. 0-dev trên Xubfox để cài đặt nó May mắn thay, các thông báo lỗi mà 7 hiển thị rất hữu ích trong việc tìm ra những gì còn thiếu và bạn có thể sử dụng phần trên trang wxPython Github để giúp bạn tìm thông tin mình cần nếu muốn cài đặt wxPython trên LinuxCó một số bánh xe Python dành cho các phiên bản Linux phổ biến nhất mà bạn có thể tìm thấy trong phần Extras Linux với cả hai phiên bản GTK2 và GTK3. Để cài đặt một trong những bánh xe này, bạn sẽ sử dụng lệnh sau
Đảm bảo rằng bạn đã sửa đổi lệnh trên để phù hợp với phiên bản Linux của mình Định nghĩa về GUINhư đã đề cập trong phần giới thiệu, giao diện người dùng đồ họa (GUI) là giao diện được vẽ trên màn hình để người dùng tương tác với Giao diện người dùng có một số thành phần phổ biến
Tất cả các mục này được gọi chung là vật dụng. Còn nhiều widget phổ biến khác và nhiều widget tùy chỉnh mà wxPython hỗ trợ. Nhà phát triển sẽ lấy các widget và sắp xếp chúng một cách hợp lý trên một cửa sổ để người dùng tương tác Vòng lặp sự kiệnGiao diện người dùng đồ họa hoạt động bằng cách chờ người dùng làm điều gì đó. Một cái gì đó được gọi là một sự kiện. Các sự kiện xảy ra khi người dùng nhập nội dung nào đó trong khi ứng dụng của bạn đang ở tiêu điểm hoặc khi người dùng sử dụng chuột để nhấn nút hoặc tiện ích con khác Bên dưới vỏ bọc, bộ công cụ GUI đang chạy một vòng lặp vô hạn được gọi là vòng lặp sự kiện. Vòng lặp sự kiện chỉ đợi các sự kiện xảy ra và sau đó hành động trên các sự kiện đó theo những gì nhà phát triển đã mã hóa ứng dụng để thực hiện. Khi ứng dụng không bắt được một sự kiện, nó sẽ bỏ qua một cách hiệu quả rằng nó thậm chí đã xảy ra Khi bạn đang lập trình giao diện người dùng đồ họa, bạn sẽ muốn ghi nhớ rằng bạn sẽ cần kết nối từng tiện ích con với trình xử lý sự kiện để ứng dụng của bạn thực hiện điều gì đó Có một cân nhắc đặc biệt mà bạn cần ghi nhớ khi làm việc với các vòng lặp sự kiện. chúng có thể bị chặn. Khi bạn chặn một vòng lặp sự kiện, GUI sẽ không phản hồi và dường như đóng băng đối với người dùng Bất kỳ quy trình nào bạn khởi chạy trong GUI sẽ mất hơn một phần tư giây có thể sẽ được khởi chạy dưới dạng một luồng hoặc quy trình riêng biệt. Điều này sẽ ngăn GUI của bạn bị đóng băng và mang lại cho người dùng trải nghiệm người dùng tốt hơn Khung wxPython có các phương thức an toàn cho luồng đặc biệt mà bạn có thể sử dụng để liên lạc lại với ứng dụng của mình để thông báo cho ứng dụng biết rằng luồng đã kết thúc hoặc để cập nhật cho nó Hãy tạo một ứng dụng khung để chứng minh cách các sự kiện hoạt động Loại bỏ các quảng cáoTạo một ứng dụng SkeletonKhung ứng dụng trong ngữ cảnh GUI là giao diện người dùng với các tiện ích con không có bất kỳ trình xử lý sự kiện nào. Đây là hữu ích cho nguyên mẫu. Về cơ bản, bạn chỉ cần tạo GUI và trình bày nó cho các bên liên quan của mình để đăng xuất trước khi dành nhiều thời gian cho logic phụ trợ Hãy bắt đầu bằng cách tạo một ứng dụng 0 với wxPython
Ghi chú. Người dùng Mac có thể nhận được thông báo sau. Chương trình này cần quyền truy cập vào màn hình. Vui lòng chạy với bản dựng Framework của python và chỉ khi bạn đăng nhập trên màn hình chính của máy Mac. Nếu bạn thấy thông báo này và bạn không chạy trong virtualenv, thì bạn cần chạy ứng dụng của mình bằng pythonw thay vì python. Nếu bạn đang chạy wxPython từ bên trong virtualenv, thì hãy xem wxPython wiki để biết giải pháp Trong ví dụ này, bạn có hai phần. 1 và 2. 1 là đối tượng ứng dụng của wxPython và được yêu cầu để chạy GUI của bạn. 1 bắt đầu một thứ gọi là 5. Đây là vòng lặp sự kiện mà bạn đã tìm hiểu trong phần trướcMảnh ghép còn lại là 2, sẽ tạo ra một cửa sổ để người dùng tương tác với. Trong trường hợp này, bạn đã nói với wxPython rằng khung không có cha và tiêu đề của nó là 0. Đây là những gì nó trông giống như khi bạn chạy mãGhi chú. Ứng dụng sẽ trông khác khi bạn chạy nó trên Mac hoặc Windows Theo mặc định, một 2 sẽ bao gồm các nút thu nhỏ, phóng to và thoát dọc theo đầu. Mặc dù vậy, bạn sẽ không thường tạo một ứng dụng theo cách này. Hầu hết mã wxPython sẽ yêu cầu bạn phân lớp 2 và các tiện ích con khác để bạn có thể nhận được toàn bộ sức mạnh của bộ công cụHãy dành một chút thời gian và viết lại mã của bạn dưới dạng một lớp pyinstaller --onefile pythonScriptName.py0 Bạn có thể sử dụng mã này làm mẫu cho ứng dụng của mình. Tuy nhiên, ứng dụng này không làm được gì nhiều, vì vậy hãy dành chút thời gian để tìm hiểu một chút về một số tiện ích con khác mà bạn có thể thêm vào tiện íchBộ công cụ wxPython có hơn một trăm widget để lựa chọn. Điều này cho phép bạn tạo các ứng dụng phong phú, nhưng cũng có thể gây khó khăn khi cố gắng tìm ra tiện ích con nào sẽ sử dụng. Đây là lý do tại sao Bản giới thiệu wxPython lại hữu ích, vì nó có bộ lọc tìm kiếm mà bạn có thể sử dụng để giúp bạn tìm các tiện ích có thể áp dụng cho dự án của mình Hầu hết các ứng dụng GUI cho phép người dùng nhập một số văn bản và nhấn nút. Hãy tiếp tục và thêm các vật dụng đó pyinstaller --onefile pythonScriptName.py1 Khi bạn chạy mã này, ứng dụng của bạn sẽ trông như thế này Tiện ích đầu tiên bạn cần thêm có tên là pyinstaller --onefile pythonScriptName.py00. Tiện ích này không bắt buộc, nhưng được khuyến nghị. Trên Windows, bạn thực sự được yêu cầu sử dụng Bảng điều khiển để màu nền của khung có màu xám phù hợp. Tính năng duyệt tab bị tắt khi không có Bảng điều khiển trên Windows Khi bạn thêm tiện ích bảng điều khiển vào một khung và bảng điều khiển là phần tử con duy nhất của khung, nó sẽ tự động mở rộng để tự lấp đầy khung Bước tiếp theo là thêm một pyinstaller --onefile pythonScriptName.py01 vào bảng điều khiển. Đối số đầu tiên cho hầu hết tất cả các tiện ích con là tiện ích mẹ nào sẽ đi vào. Trong trường hợp này, bạn muốn điều khiển văn bản và nút ở trên cùng của bảng điều khiển, do đó, đó là nút gốc mà bạn chỉ định Bạn cũng cần cho wxPython biết nơi đặt tiện ích, bạn có thể thực hiện việc này bằng cách chuyển vào một vị trí thông qua tham số pyinstaller --onefile pythonScriptName.py02. Trong wxPython, vị trí gốc là (0,0) là góc trên bên trái của phần tử gốc. Vì vậy, đối với điều khiển văn bản, bạn nói với wxPython rằng bạn muốn đặt góc trên cùng bên trái của nó cách bên trái 5 pixel (x) và 5 pixel từ trên cùng (y) Sau đó, bạn thêm nút của mình vào bảng điều khiển và đặt nhãn cho nó. Để ngăn các widget chồng lên nhau, bạn cần đặt tọa độ y thành 55 cho vị trí của nút Loại bỏ các quảng cáođịnh vị tuyệt đốiKhi bạn cung cấp tọa độ chính xác cho vị trí của tiện ích con, kỹ thuật mà bạn đã sử dụng được gọi là định vị tuyệt đối. Hầu hết các bộ công cụ GUI đều cung cấp khả năng này, nhưng nó không thực sự được khuyến nghị Khi ứng dụng của bạn trở nên phức tạp hơn, việc theo dõi tất cả các vị trí tiện ích sẽ trở nên khó khăn và nếu bạn phải di chuyển các tiện ích xung quanh. Đặt lại tất cả các vị trí đó trở thành một cơn ác mộng May mắn thay, tất cả các bộ công cụ GUI hiện đại đều cung cấp giải pháp cho vấn đề này, đó là điều bạn sẽ tìm hiểu tiếp theo. Bộ định cỡ (Định cỡ động)Bộ công cụ wxPython bao gồm các bộ định cỡ, được sử dụng để tạo bố cục động. Họ quản lý vị trí của các widget cho bạn và sẽ điều chỉnh chúng khi bạn thay đổi kích thước cửa sổ ứng dụng. Các bộ công cụ GUI khác sẽ coi các bộ định cỡ là bố cục, đó là những gì PyQt thực hiện Dưới đây là các loại động kinh chính mà bạn sẽ thấy được sử dụng thường xuyên nhất
Hãy thêm một pyinstaller --onefile pythonScriptName.py03 vào ví dụ của bạn và xem liệu chúng ta có thể làm cho nó hoạt động tốt hơn một chút không pyinstaller --onefile pythonScriptName.py9 Tại đây, bạn tạo một phiên bản của pyinstaller --onefile pythonScriptName.py03 và chuyển nó sang pyinstaller --onefile pythonScriptName.py08, đây là hướng mà các tiện ích con được thêm vào bộ định cỡ Trong trường hợp này, các tiện ích sẽ được thêm theo chiều dọc, nghĩa là chúng sẽ được thêm lần lượt từ trên xuống dưới. Bạn cũng có thể đặt hướng của BoxSizer thành pyinstaller --onefile pythonScriptName.py09. Khi bạn làm điều đó, các widget sẽ được thêm từ trái sang phải Để thêm tiện ích vào bộ định cỡ, bạn sẽ sử dụng pyinstaller --onefile pythonScriptName.py10. Nó chấp nhận tối đa năm đối số
Đối số pyinstaller --onefile pythonScriptName.py11 là tiện ích sẽ được thêm vào trong khi pyinstaller --onefile pythonScriptName.py12 đặt lượng không gian so với các tiện ích khác trong bộ định cỡ mà tiện ích cụ thể này sẽ chiếm. Theo mặc định, nó bằng 0, điều này báo cho wxPython để lại tiện ích theo tỷ lệ mặc định của nó Đối số thứ ba là pyinstaller --onefile pythonScriptName.py13. Bạn thực sự có thể chuyển nhiều cờ nếu muốn miễn là bạn phân tách chúng bằng ký tự ống. pyinstaller --onefile pythonScriptName.py19. Bộ công cụ wxPython sử dụng pyinstaller --onefile pythonScriptName.py19 để thêm cờ bằng cách sử dụng một loạt OR theo bit Trong ví dụ này, bạn thêm điều khiển văn bản với cờ pyinstaller --onefile pythonScriptName.py91 và pyinstaller --onefile pythonScriptName.py92. Cờ pyinstaller --onefile pythonScriptName.py91 cho wxPython biết rằng bạn muốn thêm đường viền trên tất cả các mặt của tiện ích trong khi pyinstaller --onefile pythonScriptName.py92 làm cho các tiện ích mở rộng hết mức có thể trong bộ định cỡ Cuối cùng, bạn có tham số pyinstaller --onefile pythonScriptName.py14, cho wxPython biết bạn muốn có bao nhiêu pixel đường viền xung quanh tiện ích. Tham số pyinstaller --onefile pythonScriptName.py15 chỉ được sử dụng khi bạn muốn làm điều gì đó phức tạp với kích thước của tiện ích con và thực tế khá hiếm thấy trong thực tế Thêm nút vào bộ định cỡ theo các bước chính xác. Tuy nhiên, để làm cho mọi thứ thú vị hơn một chút, tôi đã tiếp tục và tắt cờ pyinstaller --onefile pythonScriptName.py92 cho pyinstaller --onefile pythonScriptName.py98 để nút này sẽ được đặt ở giữa màn hình Khi bạn chạy phiên bản mã này, ứng dụng của bạn sẽ giống như sau Nếu bạn muốn tìm hiểu thêm về bộ định cỡ, tài liệu wxPython có một trang hay về chủ đề này Loại bỏ các quảng cáoThêm một sự kiệnMặc dù ứng dụng của bạn trông thú vị hơn về mặt trực quan, nhưng nó vẫn không thực sự làm được gì. Ví dụ: nếu bạn nhấn nút, không có gì thực sự xảy ra Hãy giao cho nút một công việc 2Các tiện ích trong wxPython cho phép bạn đính kèm các liên kết sự kiện với chúng để chúng có thể phản hồi một số loại sự kiện nhất định Ghi chú. Khối mã ở trên sử dụng chuỗi f. Bạn có thể đọc tất cả về chúng trong Chuỗi f của Python 3. Cú pháp định dạng chuỗi được cải thiện (Hướng dẫn) Bạn muốn nút làm gì đó khi người dùng nhấn nó. Bạn có thể thực hiện điều này bằng cách gọi phương thức pyinstaller --onefile pythonScriptName.py99 của nút. pyinstaller --onefile pythonScriptName.py99 nhận sự kiện bạn muốn liên kết, trình xử lý để gọi khi sự kiện xảy ra, nguồn tùy chọn và một vài id tùy chọn Trong ví dụ này, bạn liên kết đối tượng nút của mình với sự kiện 21 và yêu cầu nó gọi 22 khi sự kiện đó được kích hoạtMột sự kiện được "kích hoạt" khi người dùng thực hiện sự kiện mà bạn đã ràng buộc. Trong trường hợp này, sự kiện mà bạn thiết lập là sự kiện nhấn nút, 21 24 chấp nhận đối số thứ hai mà bạn có thể gọi là 25. Đây là theo quy ước. Bạn có thể gọi nó là cái gì khác nếu bạn muốn. Tuy nhiên, tham số sự kiện ở đây đề cập đến thực tế là khi phương thức này được gọi, đối số thứ hai của nó phải là một đối tượng sự kiện nào đó.Trong vòng 24, bạn có thể lấy nội dung của điều khiển văn bản bằng cách gọi phương thức 27 của nó. Sau đó, bạn in một chuỗi thành thiết bị xuất chuẩn tùy thuộc vào nội dung của điều khiển văn bản là gìBây giờ bạn đã có những kiến thức cơ bản, hãy tìm hiểu cách tạo một ứng dụng thực hiện điều gì đó hữu ích Tạo một ứng dụng làm việcBước đầu tiên khi tạo một cái gì đó mới là tìm ra những gì bạn muốn tạo. Trong trường hợp này, tôi đã tự ý đưa ra quyết định đó cho bạn. Bạn sẽ tìm hiểu cách tạo trình chỉnh sửa thẻ MP3. Bước tiếp theo khi tạo một cái gì đó mới là tìm ra những gói nào có thể giúp bạn hoàn thành nhiệm vụ của mình Nếu bạn thực hiện tìm kiếm trên Google cho 28, bạn sẽ thấy mình có một số tùy chọn
Tôi đã thử một vài trong số này và quyết định rằng eyeD3 có một API tuyệt vời mà bạn có thể sử dụng mà không bị sa lầy với thông số kỹ thuật ID3 của MP3. Bạn có thể cài đặt eyeD3 bằng cách sử dụng 7, như thế này 4Khi cài đặt gói này trên macOS, bạn có thể cần cài đặt 43 bằng cách sử dụng 44. Người dùng Windows và Linux sẽ không gặp bất kỳ sự cố nào khi cài đặt eyeD3Thiết kế giao diện người dùngKhi nói đến việc thiết kế một giao diện, thật tuyệt khi chỉ cần phác thảo giao diện người dùng mà bạn nghĩ sẽ trông như thế nào Bạn sẽ cần để có thể làm như sau
Hầu hết các giao diện người dùng sử dụng menu hoặc nút để mở tệp hoặc thư mục. Bạn có thể sử dụng menu Tệp cho việc này. Vì bạn có thể muốn xem các thẻ cho nhiều tệp MP3, nên bạn sẽ cần tìm một tiện ích có thể thực hiện việc này một cách dễ dàng Một cái gì đó ở dạng bảng với các cột và hàng sẽ là lý tưởng vì sau đó bạn có thể có các cột được gắn nhãn cho các thẻ MP3. Bộ công cụ wxPython có một vài tiện ích sẽ hoạt động cho việc này, với hai tiện ích hàng đầu là tiện ích sau
Bạn nên sử dụng 46 trong trường hợp này vì tiện ích 48 quá mức cần thiết và thật lòng mà nói, nó cũng phức tạp hơn một chút. Cuối cùng, bạn cần một nút để sử dụng để chỉnh sửa thẻ của MP3 đã chọnBây giờ bạn đã biết mình muốn gì, bạn có thể phác thảo nó Hình minh họa ở trên cho chúng ta ý tưởng về giao diện của ứng dụng. Bây giờ bạn đã biết mình muốn làm gì, đã đến lúc viết mã Loại bỏ các quảng cáoTạo giao diện người dùngCó nhiều cách tiếp cận khác nhau khi viết một ứng dụng mới. Ví dụ: bạn có cần tuân theo mẫu thiết kế Model-View-Controller không? Trong trường hợp của bạn, bạn thực sự chỉ cần hai lớp
Bạn cũng có thể tranh luận về việc tạo một mô-đun loại bộ điều khiển, nhưng đối với những thứ như thế này, bạn thực sự không cần nó. Cũng có thể đặt mỗi lớp vào mô-đun riêng của nó, nhưng để giữ cho nó nhỏ gọn, bạn sẽ tạo một tệp Python duy nhất cho tất cả mã của mình Hãy bắt đầu với quá trình nhập và lớp bảng điều khiển 6Tại đây, bạn nhập gói 61, gói 62 của Python và gói 63 cho giao diện người dùng của bạn. Tiếp theo, bạn phân lớp pyinstaller --onefile pythonScriptName.py00 và tạo giao diện người dùng của mình. Bạn cần một từ điển để lưu trữ dữ liệu về các tệp MP3 của mình, bạn có thể đặt tên cho từ điển này là 65Sau đó, bạn tạo một 46 và đặt nó ở chế độ báo cáo (_______767) với đường viền chìm ( 68). Kiểm soát danh sách có thể có một vài dạng khác tùy thuộc vào cờ kiểu mà bạn chuyển vào, nhưng cờ báo cáo là phổ biến nhấtĐể làm cho 69 có tiêu đề chính xác, bạn sẽ cần gọi 60 cho mỗi tiêu đề cột. Sau đó, bạn cung cấp chỉ mục của cột, nhãn của cột và độ rộng của cột theo pixelBước cuối cùng là thêm nút 61 của bạn, trình xử lý sự kiện và phương thức. Bạn có thể tạo ràng buộc cho sự kiện và để trống phương thức mà nó gọi ngay bây giờBây giờ bạn nên viết mã cho khung 6Lớp này đơn giản hơn nhiều so với lớp đầu tiên ở chỗ tất cả những gì bạn cần làm là đặt tiêu đề của khung và khởi tạo lớp bảng điều khiển, 62. Khi bạn đã hoàn tất, giao diện người dùng của bạn sẽ trông như thế nàyGiao diện người dùng trông gần như ổn, nhưng bạn không có menu Tệp. Điều này khiến không thể thêm MP3 vào ứng dụng và chỉnh sửa thẻ của chúng Hãy khắc phục điều đó ngay bây giờ Tạo một ứng dụng hoạt độngBước đầu tiên để ứng dụng của bạn hoạt động là cập nhật ứng dụng để ứng dụng có menu Tệp vì sau đó bạn có thể thêm các tệp MP3 vào tác phẩm của mình. Các menu hầu như luôn được thêm vào lớp 2, vì vậy đó là lớp bạn cần sửa đổiGhi chú. Một số ứng dụng đã không còn có menu trong ứng dụng của chúng. Một trong những người đầu tiên làm như vậy là Microsoft Office khi họ thêm thanh Ribbon. Bộ công cụ wxPython có một tiện ích tùy chỉnh mà bạn có thể sử dụng để tạo các dải băng trong 64Loại ứng dụng khác đã bỏ menu muộn là các trình duyệt web, chẳng hạn như Google Chrome và Mozilla Firefox. Ngày nay họ chỉ sử dụng các thanh công cụ Hãy tìm hiểu cách thêm thanh menu vào ứng dụng của chúng ta 0Tại đây, bạn thêm một lệnh gọi tới 65 trong hàm tạo của lớp. Sau đó, trong chính 65, bạn sẽ tạo một phiên bản 67 và một phiên bản 68Để thêm một mục menu vào menu, bạn gọi phiên bản menu của 69 và chuyển nó như sau
Tiếp theo, bạn cần thêm menu vào thanh thực đơn, vì vậy bạn sẽ cần gọi số của thanh thực đơn là 69. Nó nhận thực thể menu và nhãn cho menu. Nhãn này hơi lạ ở chỗ bạn gọi nó là 01 thay vì 02. Dấu và yêu cầu wxPython tạo phím tắt Alt + F để . Ghi chú. Nếu bạn muốn thêm phím tắt vào ứng dụng của mình, thì bạn sẽ muốn sử dụng một phiên bản của 04 để tạo chúng. Bạn có thể đọc thêm về Accuerator Tables trong tài liệu wxPythonĐể tạo ràng buộc sự kiện, bạn cần gọi 05, liên kết khung với 06. Khi bạn sử dụng 05 cho một sự kiện menu, bạn không chỉ cần cho wxPython biết nên sử dụng 08 nào mà còn phải cho biết 09 nào để liên kết trình xử lý vớiCuối cùng, bạn phải gọi khung là 10 và chuyển cho nó thể hiện của thanh thực đơn để nó được hiển thị cho người dùngBây giờ bạn đã thêm menu vào khung của mình, hãy xem qua trình xử lý sự kiện của mục menu, được sao chép lại bên dưới 1Vì bạn muốn người dùng chọn một thư mục chứa các tệp MP3, nên bạn sẽ muốn sử dụng 11 của wxPython. 11 cho phép người dùng chỉ mở các thư mụcBạn có thể đặt tiêu đề của hộp thoại và các cờ kiểu khác nhau. Để hiển thị hộp thoại, bạn sẽ cần gọi 13. Điều này sẽ khiến hộp thoại hiển thị theo chế độ, nghĩa là người dùng sẽ không thể tương tác với ứng dụng chính của bạn trong khi hộp thoại được hiển thịNếu người dùng nhấn nút OK của hộp thoại, bạn có thể nhận được lựa chọn đường dẫn của người dùng thông qua hộp thoại 14. Bạn sẽ muốn chuyển đường dẫn đó đến lớp bảng điều khiển của mình, bạn có thể thực hiện việc này tại đây bằng cách gọi ____ của bảng điều khiểnCuối cùng, bạn cần đóng hộp thoại. Để đóng hộp thoại, phương pháp được đề xuất là gọi ____________ của nó Các hộp thoại có một phương thức 17, nhưng về cơ bản, nó chỉ ẩn hộp thoại và nó sẽ không tự hủy khi bạn đóng ứng dụng của mình, điều này có thể dẫn đến các vấn đề kỳ lạ như ứng dụng của bạn hiện đang tắt đúng cách. Đơn giản hơn là gọi 16 trên hộp thoại để ngăn chặn sự cố nàyBây giờ hãy cập nhật lớp 62 của bạn. Bạn có thể bắt đầu bằng cách cập nhật 15 2Tại đây, bạn đặt thư mục hiện tại vào thư mục đã chỉ định và sau đó bạn xóa danh sách kiểm soát. Điều này giữ cho điều khiển danh sách luôn mới và chỉ hiển thị các tệp MP3 mà bạn hiện đang làm việc. Điều đó cũng có nghĩa là bạn cần chèn lại tất cả các cột Tiếp theo, bạn sẽ muốn lấy thư mục đã được chuyển vào và sử dụng mô-đun 62 của Python để tìm kiếm các tệp MP3Sau đó, bạn có thể lặp lại các tệp MP3 và biến chúng thành các đối tượng 61. Bạn có thể thực hiện việc này bằng cách gọi tới số 23 của số 61. Giả sử rằng các tệp MP3 đã có sẵn các thẻ thích hợp, thì bạn có thể thêm nghệ sĩ, album và tiêu đề của tệp MP3 vào điều khiển danh sáchThật thú vị, phương pháp thêm một hàng mới vào một đối tượng kiểm soát danh sách là bằng cách gọi 25 cho cột đầu tiên và 26 cho tất cả các cột tiếp theoBước cuối cùng là lưu đối tượng MP3 của bạn vào từ điển Python của bạn, 65Bây giờ bạn cần cập nhật trình xử lý sự kiện 28 để có thể chỉnh sửa các thẻ của MP3 3Điều đầu tiên bạn cần làm là lấy lựa chọn của người dùng bằng cách gọi điều khiển danh sách của 29Nếu người dùng chưa chọn bất cứ thứ gì trong điều khiển danh sách, nó sẽ trả về 30. Giả sử rằng người dùng đã chọn thứ gì đó, bạn sẽ muốn trích xuất đối tượng MP3 từ từ điển của mình và mở hộp thoại trình chỉnh sửa thẻ MP3. Đây sẽ là hộp thoại tùy chỉnh mà bạn sẽ sử dụng để chỉnh sửa nghệ sĩ, album và thẻ tiêu đề của tệp MP3Như thường lệ, hiển thị hộp thoại theo cách vừa phải. Khi hộp thoại đóng lại, hai dòng cuối cùng trong 28 sẽ thực thi. Hai dòng này sẽ cập nhật điều khiển danh sách để nó hiển thị thông tin thẻ MP3 hiện tại mà người dùng vừa chỉnh sửa và hủy hộp thoạiTạo hộp thoại chỉnh sửaPhần cuối cùng của câu đố là tạo hộp thoại chỉnh sửa thẻ MP3. Để cho ngắn gọn, chúng tôi sẽ bỏ qua việc phác thảo giao diện này vì nó là một chuỗi các hàng chứa các nhãn và điều khiển văn bản. Các điều khiển văn bản phải có thông tin thẻ hiện có được điền sẵn bên trong chúng. Bạn có thể tạo nhãn cho các điều khiển văn bản bằng cách tạo các phiên bản của 32Khi bạn cần tạo một hộp thoại tùy chỉnh, lớp 33 là bạn của bạn. Bạn có thể sử dụng nó để thiết kế trình soạn thảo 4Tại đây, bạn muốn bắt đầu bằng cách phân loại phụ 33 và đặt cho nó một tiêu đề tùy chỉnh dựa trên tiêu đề của MP3 mà bạn đang chỉnh sửaTiếp theo, bạn có thể tạo bộ định cỡ bạn muốn sử dụng và các tiện ích. Để làm mọi việc dễ dàng hơn, bạn có thể tạo một phương thức trợ giúp có tên là 35 để thêm các tiện ích con 32 dưới dạng hàng với các thể hiện điều khiển văn bản. Tiện ích duy nhất khác ở đây là nút LưuHãy viết phương thức 37 tiếp theo 5 38 lấy văn bản của nhãn và đối tượng kiểm soát văn bản. Sau đó, nó tạo ra một 39 định hướng theo chiều ngangTiếp theo, bạn sẽ tạo một phiên bản của 32 bằng cách sử dụng văn bản được truyền vào cho tham số nhãn của nó. Bạn cũng sẽ đặt kích thước của nó là chiều rộng 41 pixel và chiều cao mặc định được đặt bằng 30. Vì bạn muốn nhãn trước điều khiển văn bản, trước tiên bạn sẽ thêm tiện ích StaticText vào BoxSizer của mình rồi sau đó thêm điều khiển văn bảnCuối cùng, bạn muốn thêm bộ định cỡ ngang vào bộ định cỡ dọc cấp cao nhất. Bằng cách lồng các bộ định cỡ vào nhau, bạn có thể thiết kế các ứng dụng phức tạp Bây giờ bạn sẽ cần tạo trình xử lý sự kiện 43 để có thể lưu các thay đổi của mình 6Tại đây, bạn đặt các thẻ thành nội dung của các điều khiển văn bản và sau đó gọi đối tượng 61 là 45. Cuối cùng, bạn gọi 17 của hộp thoại. Lý do bạn gọi. 47 ở đây thay vì 16 là bạn đã gọi 16 trong 28 của phân lớp bảng điều khiển của bạnBây giờ ứng dụng của bạn đã hoàn tất Phần kết luậnBạn đã học được rất nhiều về wxPython trong bài viết này. Bạn đã làm quen với kiến thức cơ bản về tạo ứng dụng GUI bằng wxPython Bây giờ bạn biết thêm về những điều sau đây
Cuối cùng, bạn đã học cách tạo một ứng dụng hoạt động, trình chỉnh sửa thẻ MP3. Bạn có thể sử dụng những gì bạn đã học được trong bài viết này để tiếp tục nâng cao ứng dụng này hoặc có thể tạo một ứng dụng tuyệt vời của riêng bạn Bộ công cụ GUI wxPython mạnh mẽ và có đầy đủ các tiện ích thú vị mà bạn có thể sử dụng để xây dựng các ứng dụng đa nền tảng. Bạn chỉ bị giới hạn bởi trí tưởng tượng của bạn Đọc thêmNếu bạn muốn tìm hiểu thêm về wxPython, bạn có thể xem một số liên kết sau
Để biết thêm thông tin về những gì bạn có thể làm với Python, bạn có thể muốn xem Tôi có thể làm gì với Python? Bạn cũng có thể tải xuống mã cho ứng dụng chỉnh sửa thẻ MP3 mà bạn đã tạo trong bài viết này nếu bạn muốn nghiên cứu sâu hơn về nó Đánh dấu là đã hoàn thành 🐍 Thủ thuật Python 💌 Nhận một Thủ thuật Python ngắn và hấp dẫn được gửi đến hộp thư đến của bạn vài ngày một lần. Không có thư rác bao giờ. Hủy đăng ký bất cứ lúc nào. Được quản lý bởi nhóm Real Python Gửi cho tôi thủ thuật Python » Giới thiệu về Mike Driscoll Mike đã lập trình bằng Python hơn một thập kỷ và thích viết về Python » Thông tin thêm về MikeMỗi hướng dẫn tại Real Python được tạo bởi một nhóm các nhà phát triển để nó đáp ứng các tiêu chuẩn chất lượng cao của chúng tôi. Các thành viên trong nhóm đã làm việc trong hướng dẫn này là Aldren Joanna Kyle Bậc thầy Kỹ năng Python trong thế giới thực Với quyền truy cập không giới hạn vào Python thực Tham gia với chúng tôi và có quyền truy cập vào hàng nghìn hướng dẫn, khóa học video thực hành và cộng đồng các Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bậc thầy Kỹ năng Python trong thế giới thực Tham gia với chúng tôi và có quyền truy cập vào hàng ngàn hướng dẫn, khóa học video thực hành và cộng đồng Pythonistas chuyên gia Nâng cao kỹ năng Python của bạn » Bạn nghĩ sao? Đánh giá bài viết này Tweet Chia sẻ Chia sẻ EmailBài học số 1 hoặc điều yêu thích mà bạn đã học được là gì? Mẹo bình luận. Những nhận xét hữu ích nhất là những nhận xét được viết với mục đích học hỏi hoặc giúp đỡ các sinh viên khác. và nhận câu trả lời cho các câu hỏi phổ biến trong cổng thông tin hỗ trợ của chúng tôi Bạn có thể tạo ứng dụng Windows bằng Python không?Vì vậy, nếu bạn muốn khởi chạy ứng dụng máy tính phản hồi và thân thiện với người dùng của riêng mình. Bạn có thể tạo nó bằng cách sử dụng ngôn ngữ lập trình Python, vì nó linh hoạt và có thể chạy trên các hệ điều hành chính. Ngôn ngữ lập trình Python có thể được sử dụng để phát triển ứng dụng di động cho Android, IOS và Windows .
Tôi có thể xây dựng ứng dụng bằng Python không?Python không có khả năng phát triển di động tích hợp sẵn , nhưng có những gói bạn có thể sử dụng để tạo ứng dụng di động, như Kivy, PyQt hoặc thậm chí là thư viện Toga của Beeware. Các thư viện này đều là những người chơi chính trong không gian di động Python.
Tôi có thể tạo GUI bằng Python không?Việc tạo giao diện người dùng đồ họa (GUI) đơn giản hoạt động trên nhiều nền tảng có thể phức tạp. Nhưng không nhất thiết phải như vậy. Bạn có thể sử dụng Python và gói PySimpleGUI để tạo giao diện người dùng đẹp mắt mà bạn và người dùng của bạn sẽ thích.
Python có tốt cho việc phát triển ứng dụng Windows không?Python là ngôn ngữ phát triển phần mềm nguồn mở rất phổ biến cung cấp khả năng kiểm soát quy trình nâng cao . Nó có thể phát triển các ứng dụng mạng đa giao thức phức tạp đồng thời duy trì cú pháp đơn giản và dễ hiểu. |