Phát triển ứng dụng với Python 3, Glade và GTK + 3 trên Windows

Giới thiệu

Trong GNU / Linux, việc phát triển các ứng dụng với Python 3, Glade và GTK + 3 là rất dễ dàng, các gói được cung cấp theo mặc định trong hầu hết các bản phân phối.

Xuyên qua Glade chúng ta có thể tạo giao diện người dùng một cách nhanh chóng và dễ dàng, sau đó sử dụng chúng cùng với Python. Để đạt được điều này, bạn sử dụng PyGObject nhờ hệ thống xem xét nội quan mà GNOME cung cấp, giúp cho việc Phát triển Ứng dụng Nhanh (RAD) dễ dàng hơn nhiều; cũng có thể sử dụng các giao diện của chúng tôi được tạo bằng Glade từ các ngôn ngữ lập trình khác.

Sự cố xảy ra khi chúng tôi muốn sử dụng các ứng dụng của mình trong Microsoft Windows, vì cho đến gần đây các gói cho hệ thống này vẫn chưa chính thức tồn tại.

Với hướng dẫn này, mục đích là các ứng dụng đã được tạo trong GNU / Linux sử dụng Python 3 và GTK + 3 chạy mà không gặp sự cố trong Windows.

Yêu cầu

  • Python 3.3
  • Gtk + 3
  • Glade 3.14 hoặc cao hơn (GUI designer)
  • pygobject

Cài đặt trên Windows

Nó sẽ bắt đầu bằng cách tạo một thư mục có tên phần mềm hoặc tùy chọn khác của bạn và chúng tôi sẽ lưu trong đó tất cả các gói được tải xuống.

Tải xuống các gói cài đặt

Tải xuống Python 3.3

Nó có thể được tải xuống từ trang Python chính thức python.org

Tải xuống trình cài đặt Python

Tải xuống trình cài đặt Python

Bằng cách nhấp vào liên kết (Windows Installer) trình cài đặt Python sẽ tải xuống.

Tải xuống Glade

Tải xuống trang web: Glade.gnome.org

Cả hai phiên bản Python và Glade đều là 32-bit, nhưng chúng chạy hoàn hảo trên các hệ thống 64-bit

Trang Glade

Trang Glade

Tải xuống PyGObject

Tải xuống trang web: https://wiki.gnome.org/PyGObject

Chúng tôi phải tải xuống phiên bản cho GTK + 3

PyGObject

PyGObject

PyGObject trong mã Google

PyGObject trong mã Google

Cài đặt các gói

Cho đến thời điểm này, chúng tôi đã có tất cả các gói đã tải xuống trong thư mục phần mềm và khi chúng tôi đã tải xuống từng gói, trước tiên chúng tôi sẽ bắt đầu với cài đặt Python.

Các gói đã tải xuống

Các gói đã tải xuống

Cài đặt Python

Cài đặt rất đơn giản, trình hướng dẫn sẽ hướng dẫn chúng ta trong suốt quá trình; Chúng tôi để tất cả các tùy chọn được đánh dấu theo mặc định.

Chương trình cài đặt Python

Chương trình cài đặt Python

Như đã thấy trong hình, Python cài đặt trong thư mục C: \ Python33 \ theo mặc định, chúng tôi để nguyên như vậy và tiếp tục cài đặt.

Thư mục cài đặt Python

Thư mục cài đặt Python

Tại điểm cài đặt này, chúng tôi chọn tùy chọn Thêm python.exe vào Đường dẫn, với mục đích khi chúng tôi khởi chạy trình thông dịch Python, nó sẽ được thực thi mà không cần phải thêm nó vào đường dẫn hệ thống theo cách thủ công.

Thêm Python vào Đường dẫn Hệ thống

Thêm Python vào Đường dẫn Hệ thống

Sau đó, chúng tôi hoàn tất quá trình cài đặt và Python sẽ được cài đặt trên hệ thống của chúng tôi.

Cài đặt Glade

Cài đặt Glade không phải là một sự phức tạp lớn, chúng tôi chạy chương trình cài đặt và làm theo các bước của trình hướng dẫn.

Cài đặt glade

Cài đặt glade

Cài đặt PyGObject

Chúng tôi đã tải xuống gói pygi-aio-3.4.2rev11.7z, gói này bao gồm các thư viện PyGObject cho Python 3.3 và GTK + 3 cho Windows, được nén bằng 7-zip, chúng ta giải nén nó sẽ có một thư mục với nội dung sau:

Nội dung của thư mục pygi-aio-3.4.2rev11.7

Nội dung của thư mục pygi-aio-3.4.2rev11.7

Bây giờ chúng tôi sao chép thư mục gtk a C: \ Python33 \ Lib \ site-package là nơi các gói bên thứ ba cho Python được cài đặt.

Sao chép thư mục gtk

Sao chép thư mục gtk

Thư mục gtk tại C: \ Python33 \ Lib \ site-pack

Thư mục gtk tại C: \ Python33 \ Lib \ site-pack

Chúng tôi quay lại thư mục của chúng tôi pygi-aio-3.4.2rev11 và chúng tôi mở thư mục py33 cho phiên bản Python là 3.3

Nội dung của thư mục py33

Nội dung của thư mục py33

Chúng tôi chọn tất cả nội dung thư mục py33 và chúng tôi sao chép nó trở lại thư mục C: \ Python33 \ Lib \ site-package, chúng tôi sẽ được yêu cầu trộn và ghi đè, chúng tôi trả lời khẳng định. Nội dung của thư mục gói trang web nó sẽ như thể hiện trong hình ảnh sau:

Sao chép nội dung của thư mục py33 vào C: \ Python33 \ Lib \ site-package

Sao chép nội dung của thư mục py33 vào C: \ Python33 \ Lib \ site-package

Kiểm tra cài đặt đúng của PyGobject và GTK + 3

Để xác minh rằng cài đặt của chúng tôi đã chính xác, chúng tôi mở Python IDLE và nhập các thư viện GTK + 3 và nếu chúng tôi không có bất kỳ thông báo lỗi nào, mọi thứ sẽ được thực hiện chính xác.

from gi.repository import Gtk

PyGobject và GTK + 3 được cài đặt đúng cách

PyGobject và GTK + 3 được cài đặt đúng cách


Để lại bình luận của bạn

địa chỉ email của bạn sẽ không được công bố. Các trường bắt buộc được đánh dấu bằng *

*

*

  1. Chịu trách nhiệm về dữ liệu: Miguel Ángel Gatón
  2. Mục đích của dữ liệu: Kiểm soát SPAM, quản lý bình luận.
  3. Hợp pháp: Sự đồng ý của bạn
  4. Truyền thông dữ liệu: Dữ liệu sẽ không được thông báo cho các bên thứ ba trừ khi có nghĩa vụ pháp lý.
  5. Lưu trữ dữ liệu: Cơ sở dữ liệu do Occentus Networks (EU) lưu trữ
  6. Quyền: Bất cứ lúc nào bạn có thể giới hạn, khôi phục và xóa thông tin của mình.

  1.   Joaquin dijo

    Và tại sao GTK? Sẽ tốt hơn nếu phát triển trong QT? bên cạnh đó là đa dạng và nhiều người nói rằng đó là tương lai

    1.    nghệ thuật dijo

      Hai thư viện đồ họa tuyệt vời trên máy tính để bàn GNU / Linux là GTK và QT, mỗi người chọn một cái mà họ thích. Không có lý do gì để chiến đấu.

      Sự khác biệt giữa GTK và QT là cái sau là một khung, thực sự rất tốt, nhưng là một khung thì nó tiêu tốn nhiều tài nguyên hơn một chút.

      Ví dụ: Mozilla Firefox, Google Chrome, LibreOffice và một tập đoàn lâu dài được tạo bằng GTK; Điều này không có nghĩa là nó tốt hơn QT, mọi người nên chọn cái phù hợp với sở thích và nhu cầu của mình, chúng tôi không muốn gây ra một cuộc thảo luận về nó.

      1.    pandev92 dijo

        Google chrome từ phiên bản 33, để lại gtk.

  2.   rolo dijo

    và tại sao giải thích cho windows mà không phải linux

    1.    Germán dijo

      Có phải vì trong Linux mọi thứ đều đã được đóng gói sẵn và nằm trong kho lưu trữ chính thức của mỗi bản phân phối? Ví dụ: trong Fedora, tôi đã cài đặt Python 3, Gtk + 3 và PyGobject theo mặc định. Nếu tôi muốn Glade, nó chỉ là "yum install glade". Dễ dàng phải không? 🙂

    2.    nghệ thuật dijo

      Vì như Germán nói, đối với các bản phân phối GNU / Linux, chúng đã được đóng gói sẵn và rất dễ cài đặt chúng; ví dụ để cài đặt glade trên Debian rất đơn giản:
      aptitude install glade

  3.   Marcelo dijo

    Nếu tôi muốn sử dụng Python 2.7 thì các bước có giống nhau không?
    Rõ ràng, việc cài đặt Python 2.7 32-bit (ngay cả khi bạn sử dụng HĐH 64-bit) và thay vì thư mục py33, 2.7 sẽ sử dụng. Nó sẽ hoạt động?
    Cảm ơn bạn.

    1.    nghệ thuật dijo

      Vâng, nếu bạn có vấn đề, hãy để lại cho tôi một bình luận.

      May mắn.

      1.    Marcelo dijo

        Cảm ơn, tôi đã thử và bây giờ "Hello world" phù hợp với tôi.

        Tôi xem liệu tôi có thể nhận được bất kỳ hướng dẫn pyGTK3 hay nào hoặc bất kỳ thứ gì nó được gọi và bất kỳ vấn đề nào không, hãy cảnh báo.

          1.    Marcelo dijo

            Caramba! Cảm ơn rất nhiều!

          2.    Marcelo dijo

            Thử nghiệm GTK3 với Python 2.7 trên Windows và làm theo hướng dẫn. Cho đến nay, tất cả các chương trình đều phù hợp với tôi, ngoại trừ chương trình trong Chương 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)

            Nó mang lại cho tôi lỗi sau:
            Traceback (cuộc gọi gần đây nhất cuối cùng):
            Tệp "C: \ Users \ User \ Desktop \ test.py", dòng 24, trong
            win = IconViewWindow ()
            Tệp "C: \ Users \ User \ Desktop \ test.py", dòng 19, trong __init__
            pixbuf = Gtk.IconTheme.get_default (). load_icon (biểu tượng, 64, 0)
            Tệp "C: \ Python27 \ lib \ site-package \ gi \ styles.py", dòng 47, trong hàm
            return info.invoke (* args, ** kwargs)
            GError: Biểu tượng 'gtk-cut' không có trong chủ đề

            Tôi đã thử nó với các biểu tượng khác và nó cũng không hoạt động. Tôi có cần cài đặt chủ đề không? Cảm ơn kể từ bây giờ.

          3.    Marcelo dijo

            Ví dụ 19. Kéo và thả cũng không.

            Hàm gọi trong cả hai trường hợp và đó là nơi tôi gặp lỗi là:

            pixbuf = Gtk.IconTheme.get_default (). load_icon (icon_name, 16, 0)

            Tôi không thể tìm thấy biểu tượng, nhưng trong các ví dụ khác, bạn có thể sử dụng chúng. Nó chỉ mang lại cho tôi lỗi khi tôi muốn sử dụng nó với chức năng đó (ở đây icon_name có thể được thay thế bằng một giá trị như Gtk.STOCK_CUT hoặc bất cứ thứ gì và nó cho cùng một lỗi).

          4.    Marcelo dijo

            Tôi tiếp tục nói với chính mình. Điều phù hợp với tôi trong các ví dụ khác là hình ảnh tải trên các nút. Tôi không thể tải các biểu tượng có chức năng có trong hai ví dụ mà tôi đã đưa ra trước đó.

          5.    nghệ thuật dijo

            Tôi nghĩ rằng lỗi là rõ ràng:
            GError: Biểu tượng 'gtk-cut' không có trong chủ đề

            Rõ ràng biểu tượng đó không có, hãy sử dụng biểu tượng khác. Có thể người bảo trì gói đã không bao gồm các biểu tượng chủ đề hoặc không thể tìm thấy nó trong đường dẫn mặc định, hãy sử dụng bản phân phối GNU / Linux và xem lỗi tương tự vẫn xuất hiện.

            Về câu hỏi 19, nó có vẻ liên quan đến phiên bản PyGobject, ở đầu tài liệu có ghi:

            Chú thích
            Các phiên bản của PyGObject = 3.0.3 là bắt buộc để các ví dụ sau hoạt động.

            Phiên bản bạn có là 3.0, hãy thử bản phân phối GNU / Linux; và sau đó chúng ta phải đợi họ cập nhật gói (dành cho Windows) hoặc trong mọi trường hợp, bạn có thể tự biên dịch.

            Xin chào và tiếp tục.

          6.    Marcelo dijo

            Trong Ubuntu, tất cả các ví dụ hướng dẫn hoạt động hoàn hảo đối với tôi. Trên Windows, nó vẫn không hoạt động. Tôi sẽ phải đợi. Một thứ khác không đi bộ là ví dụ về Spinner, không tạo hoạt ảnh. Xin chào và cảm ơn.

  4.   Joshua dijo

    Tôi đã làm theo hướng dẫn cài đặt và cài đặt mọi thứ từng bước.
    Và thực thi đoạn mã sau:
    từ gi.repository nhập Gtk

    lớp FiestraPrincipal:
    def __init __ (bản thân):
    filename = "/ data / dam / Python ví dụ / Saudoform"
    constructor = Gtk.builder ()
    constructor.add_from_file (tên tệp)
    #dictionary nơi chúng tôi liên hệ các sinais với các sự kiện
    sinais = {
    «ClickedAccept»: self.clic_boton,
    "ActivateTextCadro": self.clic_boton,
    "DestroyFiestra": Gtk.main_quit

    }
    constructor.connect_signals (sinais)
    # Chúng tôi nhận tham chiếu đến bộ mô tả XML để có thể truy cập
    self.label = self.widgets_widget ("Nhãn")
    self.cadroTexto = self.widgets_widget ("CadroTexto")

    def button_click (self, widget):
    text = self.cadroTexto.get_text ()
    self.label.set_text ("wave% s"% text)

    if __name__ == »__ main__»:
    FiestraPrincipal ()
    Gtk.Main ()

    Tôi nhận được câu trả lời này:
    Traceback (cuộc gọi gần đây nhất cuối cùng):
    Tệp «C: / Users / admin / Google Drive / test / Saudo Form.py», dòng 3, trong
    từ gi.repository nhập Gtk
    Tệp "C: \ Python33 \ lib \ site-package \ gi \ __ init__.py", dòng 27, trong
    từ ._gi nhập _API, Kho lưu trữ
    ImportError: DLL load không thành công:% 1 không phải là ứng dụng Win32 hợp lệ.

    Ai đó biết vấn đề là gì, hoặc giải pháp khả thi của nó có thể là gì.
    Cám ơn rất nhiều.

  5.   Chúa Giêsu dijo

    Hấp dẫn. Tôi đã thực hiện cài đặt trong linux, nhưng giải thích cho các cửa sổ là tốt, bây giờ tôi có nó trong cả hai. 😉

  6.   Rafael Carmona dijo

    Lần đầu tiên sử dụng windows 7 32-bit thật buồn cười.
    Trên Windows 7 64-bit, tôi không thể chạy nó, tôi luôn nhận được nó;
    >>> từ gi.repository nhập Gtk
    Traceback (cuộc gọi gần đây nhất cuối cùng):
    Tệp «», dòng 1, trong
    Tệp "C: \ Python33 \ lib \ site-package \ gi \ __ init__.py", dòng 27, trong
    từ ._gi nhập _API
    ImportError: DLL load không thành công: Không tìm thấy quy trình được chỉ định.

    Tôi đã thử nó bằng mọi cách có thể, tôi đã mất ảo tưởng về việc cài đặt nó.

    1.    nghệ thuật dijo

      Bạn sẽ thấy các thư viện 64-bit vẫn còn một số lỗi, hãy cài đặt phiên bản 32-bit của cả python và GTK + để không gặp sự cố.

      Bạn đừng bao giờ đánh mất ảo tưởng 🙂

  7.   Richard dijo

    Xin chào, tôi đang làm việc với python + gtk3, rất tốt, hiện tại tôi đang gặp một chút vấn đề, tôi muốn thay đổi biểu tượng thành biểu mẫu (cửa sổ) của mình trong trường hợp này và tôi có thể thay đổi nó, cảm ơn trước, Xin chào

  8.   jos dijo

    xuất bản các video đơn giản về cách lập trình trong gtk + 3 và các lời chào hướng dẫn đơn giản

  9.   Jose dijo

    Hướng dẫn xuất sắc. Cảm ơn rất nhiều vì sự nỗ lực của bạn. Trân trọng.

  10.   jkmilo1030 dijo

    Tôi đã làm tất cả các bước và khi tôi tin tưởng cài đặt, tôi đã gặp lỗi này.

    Traceback (cuộc gọi gần đây nhất cuối cùng):
    Tệp «», dòng 1, trong
    từ gi.repository nhập Gtk
    ImportError: Không có mô-đun nào có tên 'gi'