介紹
在使用Python 3,Glade和GTK + 3開發應用程序的GNU / Linux中,這非常容易,大多數發行版中默認提供這些軟件包。
謝謝 格萊德 我們可以快速輕鬆地創建用戶界面,然後將其與Python結合使用。 為此,您可以使用 PyG對象 感謝GNOME提供的自省系統,該系統極大地促進了快速的應用程序開發(RAD); 也可以使用通過Glade從其他編程語言創建的接口。
當我們要在Microsoft Windows中使用應用程序時,就會出現問題,因為直到最近該系統的軟件包才正式存在。
在本教程中,旨在使用Python 3和GTK + 3在GNU / Linux中創建的應用程序在Windows中運行時不會出現問題。
要求條件
- Python的3.3
- Gtk + 3
- Glade 3.14或更高版本(GUI設計器)
- 對象
在Windows上安裝
首先創建一個名為 軟體 或您的其他偏好設置,我們將在其中保存所有已下載的軟件包。
下載安裝包
下載Python 3.3
可以從Python官方頁面下載 python.org
通過點擊鏈接(Windows安裝程序),Python安裝程序將下載。
下載Glade
下載地址: 林間空地.gnome.org
Python和Glade版本都是32位的,但是它們可以在64位系統上完美運行
下載PyGObject
下載地址: https://wiki.gnome.org/PyGObject
我們必須下載GTK + 3的版本
安裝軟件包
至此,我們已經在文件夾中保存了所有下載的軟件包 軟體 下載完每個軟件包後,我們將首先從Python安裝開始。
Python安裝
安裝非常簡單,嚮導將指導我們完成該過程; 我們保留所有選項為默認標記。
如圖所示,Python安裝在文件夾中 C:\ Python33 \ 默認情況下,我們保持原樣,然後繼續安裝。
在安裝時,我們選擇選項 將python.exe添加到路徑,目的是當我們啟動Python解釋器時,無需手動將其添加到系統路徑即可執行該解釋器。
然後,我們完成安裝,並且將在系統上安裝Python。
Glade安裝
Glade安裝並不代表主要的複雜性,我們運行安裝程序並按照嚮導的步驟進行操作。
PyGObject安裝
我們已經下載了軟件包 pygi-aio-3.4.2rev11.7z,此軟件包包括適用於Python 3.3的PyGObject和適用於Windows的GTK + 3庫,並使用 7-ZIP,我們將其解壓縮,然後將得到一個包含以下內容的文件夾:
現在我們複製文件夾 GTK a C:\ Python33 \ Lib \ site-packages 這是安裝Python第三方軟件包的位置。
我們回到文件夾 pygi-aio-3.4.2rev11 然後打開文件夾 py33 適用於Python版本3.3
我們選擇 所有內容 從資料夾中 py33 然後將其複制回文件夾 C:\ Python33 \ Lib \ site-packages,我們將被要求混合和覆蓋,我們肯定地回答。 文件夾內容 網站包裝 如下圖所示:
檢查PyGobject和GTK + 3的正確安裝
為了檢查我們的安裝是否正確,我們打開Python IDLE並導入GTK + 3庫,如果沒有任何錯誤消息,則說明一切正確。
from gi.repository import Gtk
為什麼選擇GTK? 在QT中發展會更好嗎? 除了跨平台之外,還有很多人說這是未來
GNU / Linux桌面上的兩個出色的圖形庫分別是GTK和QT,每個庫都選擇自己喜歡的一個。 沒有理由打架。
GTK和QT之間的區別在於後者確實是一個很好的框架,但是作為一個框架,它消耗更多的資源。
例如,Mozilla Firefox,Google Chrome,LibreOffice和long etcetera是使用GTK製作的; 這並不意味著它比QT好,每個人都應該選擇適合其偏好和需求的QT,我們不想對此進行討論。
Google Chrome從33版開始,離開gtk。
以及為什麼對Windows而不是Linux的解釋
是因為在Linux中所有內容都已經打包,並且在每個發行版的正式存儲庫中了嗎? 例如,在Fedora中,我已經默認安裝了Python 3,Gtk + 3和PyGobject。 如果我想要Glade,那就只是“百勝安裝空地”。 容易吧? 🙂
因為正如Germán所說,對於GNU / Linux發行版,它們已經打包好了,安裝起來非常容易。 例如在Debian中安裝Glade非常簡單:
資質安裝林間空地
如果要使用Python 2.7,步驟是否相同?
顯然,安裝2.7位Python 32(即使使用64位操作系統)也可以,而不是py33文件夾。 能行嗎?
謝謝。
好吧,是的,如果您有問題,請給我評論。
運氣。
謝謝,我已經嘗試過了,現在“ Hello world”對我有用。
我看我能否得到任何好的pyGTK3教程或任何所謂的教程,以及任何問題,警告。
教程:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
卡蘭巴! 非常感謝!
在Windows上使用Python 3測試GTK2.7,並按照教程進行操作。 到目前為止,所有程序都對我有用,除了第14章(IconView-> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)
它給了我以下錯誤:
追溯(最近一次通話):
文件“ C:\ Users \ User \ Desktop \ test.py”,第24行,在
贏= IconViewWindow()
__init__中的文件“ C:\ Users \ User \ Desktop \ test.py”,第19行
pixbuf = Gtk.IconTheme.get_default()。load_icon(icon,64,0)
功能中的文件“ C:\ Python27 \ lib \ site-packages \ gi \ types.py”,第47行
返回info.invoke(* args,** kwargs)
GError:主題中不存在圖標“ gtk-cut”
我嘗試了其他圖標,但也沒有用。 我需要安裝主題嗎? 從現在開始謝謝。
示例19.也不拖放。
在這兩種情況下都會調用的函數,而這是我得到錯誤的地方:
pixbuf = Gtk.IconTheme.get_default()。load_icon(icon_name,16,0)
我找不到該圖標,但是在其他示例中,您可以使用它們。 僅在我要與該函數一起使用時才給我一個錯誤(此處icon_name可以替換為Gtk.STOCK_CUT之類的值,或者給出完全相同的錯誤)。
我一直在自言自語。 在其他示例中,對我有用的是將圖像加載到按鈕上。 我無法使用前面給出的兩個示例中的功能加載圖標。
我認為錯誤很明顯:
GError:主題中不存在圖標“ gtk-cut”
顯然該圖標不可用,請使用另一個圖標。 軟件包維護者可能未包含主題圖標,或者在默認路徑中找不到主題圖標,請使用GNU / Linux發行版,查看是否仍然出現相同的錯誤。
關於問題19,它似乎與PyGobject版本有關,在文檔頂部顯示:
備註
要使以下示例正常工作,必須使用PyGObject = 3.0.3的版本。
您擁有的版本是3.0,請嘗試使用GNU / Linux發行版; 然後我們必須等待他們更新軟件包(對於Windows),或者在任何情況下您都可以自己編譯。
問候並繼續前進。
在Ubuntu中,所有教程示例都非常適合我。 在Windows上,它仍然不起作用。 我將不得不等待。 另一個不走的例子是Spinner的示例,它不執行動畫。 問候和感謝。
我已按照安裝教程進行操作,並逐步安裝了所有內容。
並執行以下代碼:
從gi.repository導入Gtk
FiestraPrincipal類:
def __init __(個體):
filename =“ / data / dam / Python示例/ Saudoform”
構造函數= Gtk.builder()
constructor.add_from_file(文件名)
#將我們的西奈事件與事件聯繫起來的字典
西奈斯= {
«ClickedAccept»:self.clic_boton,
“ ActivateTextCadro”:self.clic_boton,
“ DestroyFiestra”:Gtk.main_quit
}
builder.connect_signals(sinais)
#我們獲得了對XML描述符的引用,以便能夠訪問
self.label = self.widgets_widget(“標籤”)
self.cadroTexto = self.widgets_widget(“ CadroTexto”)
def button_click(自身,小部件):
文字= self.cadroTexto.get_text()
self.label.set_text(“ wave%s”%text)
如果__name__ ==»__ main__»:
FiestraPrincipal()
Gtk.Main()
我得到這個答案:
追溯(最近一次通話):
文件«C:/用戶/管理員/ Google雲端硬盤/測試/ SaudoForm.py»,第3行,在
從gi.repository導入Gtk
文件“ C:\ Python33 \ lib \ site-packages \ gi \ __ init__.py”,第27行,在
從._gi導入_API,存儲庫
ImportError:DLL加載失敗:%1不是有效的Win32應用程序。
有人知道問題是什麼,或者可能是什麼解決方案。
非常感謝。
有趣。 我已經在linux上完成了安裝,但是Windows的解釋很好,現在兩者都有。 😉
第一次在7位Windows 32上很有趣。
在Windows 7 64位上,我無法使其運行,但我總是可以得到它。
>>>從gi.repository導入Gtk
追溯(最近一次通話):
檔案«»,第1行
文件“ C:\ Python33 \ lib \ site-packages \ gi \ __ init__.py”,第27行,在
從._gi導入_API
ImportError:DLL加載失敗:找不到指定的進程。
無論如何我都嘗試過,我已經失去了安裝它的幻想。
您會看到64位庫仍然存在一些錯誤,請同時安裝python和GTK +的32位版本,這樣就不會出現問題。
你永遠不要失去幻想
嗨,我正在使用python + gtk3,這非常好,現在我有一個小問題,在這種情況下,我想將圖標更改為窗體(窗口),我可以更改它,在此先感謝,謝謝
發布有關如何在gtk + 3中進行編程的簡單視頻以及簡單的教程問候
優秀的教程。 非常感謝您的努力。 問候。
我做了所有步驟,當我信任安裝時,出現了此錯誤。
追溯(最近一次通話):
檔案«»,第1行
從gi.repository導入Gtk
ImportError:沒有名為“ gi”的模塊