Bộ công cụ GUI được đề xuất để phát triển Python trên Raspberry Pi


31

Tôi đang dạy con gái Python của tôi (và bản thân tôi ở một mức độ nào đó) bằng cách sử dụng Pi và chúng tôi đã có một thời gian tuyệt vời cho đến nay - nhưng CLI chỉ có thể đưa chúng ta đến nay. Tôi đã bắt đầu xem xét các bộ công cụ khác, cụ thể là wx , QtGTK . Tất cả những thứ này dường như có những ràng buộc tuyệt vời cho Linux nói chung, mặc dù tôi không thể tìm thấy nhiều thông tin cụ thể cho Raspberry Pi. Tôi cũng mở cho các bộ công cụ khác - miễn là các ràng buộc trăn là tốt.

Có ai có bất kỳ kinh nghiệm mã hóa cho một trong số này trên pi không? Có một apt-getlệnh đơn giản tôi cần chạy để cài đặt các gói cần thiết không? Tốt hơn nữa, có bộ công cụ nào sẵn sàng để đi với hình ảnh Raspbian không?

Lưu ý: Tôi hiện đang sử dụng Raspbian mà không gặp vấn đề gì, mặc dù Arch rất hấp dẫn do các vấn đề ABI khó nổi với đơn âm.

Câu trả lời:


22

Tôi muốn giới thiệu Tkinter, đây là thư viện GUI tiêu chuẩn cho Python và kết quả là đã được cài đặt. IDLE IDE (được bao gồm trong hình ảnh Raspbian) không chỉ hỗ trợ Tkinter mà còn là một ứng dụng Tkinter. Ngoài ra, hầu hết các sách Python sẽ bao gồm ít nhất một chương về cách tạo GUI với Tkinter. Nếu bạn thích tài nguyên web, bạn sẽ muốn xem hướng dẫn Tkinter của Pythonware . Thông tin và tài nguyên bổ sung có thể được tìm thấy trên trang Tkinter của Python.org .


Đối với hướng dẫn Tkinter, liên kết dành cho trang thứ hai - đây là phần giới thiệu nếu có ai muốn: pythonware.com/l Library / tkinter / int sinhtion / whats
Penguin Penguin

2

Tôi đã làm một chút thời gian với Tkinter 15 năm trước, sau đó vài năm tôi đã làm gì đó với wx. Trong khi tôi có thể hoàn thành công việc, tôi thấy cả hai hơi tẻ nhạt. Tôi không biết tình hình đã được cải thiện bao nhiêu kể từ lần cuối tôi sử dụng chúng - hoặc việc học của tôi sẽ khiến chúng có vẻ dễ dàng hơn ngày hôm nay.

Tuy nhiên, trong vài tháng qua, tôi đã khám phá PySide , một khung tương thích với PyQt. Cực kỳ hữu ích là Trình thiết kế Qt , cho phép bạn kéo và thả các thành phần (nút ấn, mặt số, thanh trượt, hộp kiểm, v.v.) và lưu chúng dưới dạng tệp XML có phần mở rộng ".ui". pyside-uic sau đó đọc nó và tạo mã Python. Có một số video hướng dẫn TUYỆT VỜI ngoài kia.

Bo Milanovich có một loạt 29 video trên Udemy (với giá 15 đô la) mà tôi vừa hoàn thành, nhưng cũng có một số chi phí miễn phí được liệt kê trên trang web của Qt: http://wiki.qt.io/PySide_Video_Tutorials . Bo có thể hơi "mất tập trung" trong các bài học của mình, đi tiếp tuyến, nhưng trong 29 bài học trung bình 30 phút mỗi bài, nó chắc chắn trị giá 15 đô la.

Gần đây tôi cũng đã tìm thấy " Qt Designer - PyQt với hướng dẫn lập trình GUI của Python " ( https://www.youtube.com/watch?v=Dmo8eZG5I2w ). Điều đó dẫn tôi đến trang web của người trình bày cung cấp phần giới thiệu cho Qt, Tkinter và Kivy https://pythonprogramming.net/gui-development-tutorials/ . Tôi chưa xem chúng, nhưng dựa trên hướng dẫn của Qt Designer mà tôi đã xem, tôi đang mong chờ những cái trên pythonprogramming.net.

Một số tài liệu chính thức của PyQt và PySide còn thiếu một chút. Phần lớn được chuyển đổi thông qua một số quy trình tự động từ tài liệu Qt ban đầu và các bit bị mất trong bản dịch. Vì vậy, nếu các tài liệu tại https://pyside.github.io/docs/pyside/ bị thiếu, hãy xem các tài liệu tại http://doc.qt.io/ và thử dịch những gì bạn đọc sang Python. Nhưng hãy xem hướng dẫn trước, vì chúng sẽ đưa bạn đi một chặng đường dài.

Tôi nhìn thoáng qua GTK vài năm trước. Nó cũng có một nhà thiết kế, glade. Tôi đã cân nhắc việc đi xuống con đường đó một lần nữa, nhưng đối với những điều tôi quan tâm, dường như có nhiều năng lượng hơn đằng sau Qt. Tôi CHỈ bắt đầu khám phá Kivy, vì nó dường như được khuyến nghị cho công việc trên màn hình cảm ứng.

Một chút muộn, nhưng tôi hy vọng điều này sẽ giúp.


1

tkinter là phần mở rộng GUI cho TCL, được sử dụng từ rất sớm trong chu trình phát triển Python. IDLE shell lệnh Python sử dụng tkinter.

đối với GUI bạn cần có dịch vụ xorg-x11 (trình nền) và trình quản lý bản trình bày. X11 là nơi trình điều khiển thiết bị hiển thị sống. Có tên bắt đầu bằng xorg-x11-drv-xxxxx. X11 là bộ điều khiển HID (Thiết bị giao diện con người). Chuột, máy tính bảng, bàn phím, vv cũng kết nối với dịch vụ x11.

Người quản lý thuyết trình của tôi là Gnome, nhưng có ít nhất 1/2 tá. Tôi hiểu Xfce là một trong những cái nhẹ hơn.

Đối với các công cụ phát triển GUI Python tôi sử dụng DrPython (chỉnh sửa mã, kiểm tra cú pháp và gỡ lỗi). wxGlade là môi trường phát triển GUI kéo và thả Python khá giống với Visual Basic. Cả hai đều là ứng dụng wxPython và không yêu cầu quyền root. Chúng có thể được tải xuống từ sourceforge.net

R-Pi-3b của tôi đang được đặt hàng. Cháu gái tôi đã có một, đó là lý do tại sao đơn hàng được đặt. Tôi đã lập trình được hơn 60 năm và bằng Python trong hơn một thập kỷ. Tôi đã phát triển một số trình biên dịch cho các ngôn ngữ tùy chỉnh và ứng dụng khách / máy chủ để tự động hóa tại nhà.


1

Tôi đã phát triển ứng dụng GUI chạy trên raspberry pi 2,3. Tôi đã sử dụng cả tkinter và pyQt4.

Nhưng Trường hợp cả tkinter và pyQt4 đòi hỏi nhiều mã hóa hơn để đặt các widget của bạn và mất nhiều thời gian để sắp xếp bố cục.

Trong đề xuất của tôi, hãy sử dụng trình thiết kế QT4 để tạo UI. Rất dễ dàng vì chức năng kéo và thả, sau này bạn có thể tạo tập lệnh python .py từ tệp .ui bằng lệnh pyuic4 và bạn cũng có thể thêm hình ảnh trong Ui của mình bằng trình thiết kế qt4 cho rằng bạn phải tạo tệp resosurce.rc mà sau này bạn phải chuyển đổi bằng cách sử dụng lệnh pyrcc.

Có một số hướng dẫn có sẵn.


0

Hãy xem appJar. Nó không có các tính năng kéo và thả của Trình thiết kế QT4 đã nói ở trên, nhưng bạn có thể tạo một GUI đẹp chỉ trong vài phút tùy thuộc vào những gì bạn đang cố gắng thực hiện. Tài liệu trên trang web của họ cho thấy nhiều ví dụ tuyệt vời. http://appjar.info/


-2

đi cho pygtk nó ổn định tốt nhất và vững chắc cho người mới bắt đầu


5
Một số chi tiết bổ sung sẽ giúp cải thiện câu trả lời này (điều gì làm cho nó tốt nhất so với các lựa chọn thay thế khác, làm thế nào để tôi cài đặt nó, điều gì làm cho nó dễ dàng).
Steve Robillard
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.