pengenalan
Dalam GNU / Linux mengembangkan aplikasi dengan Python 3, Glade dan GTK + 3 sangat mudah, pakej-pakej datang secara lalai dalam sebilangan besar pengedaran.
Melalui Senang kita dapat membuat antara muka pengguna dengan cepat dan mudah dan kemudian menggunakannya bersama dengan Python. Untuk mencapai ini, anda gunakan Objektif PyGO terima kasih kepada sistem introspeksi yang ditawarkan oleh GNOME, yang menjadikan Rapid Application Development (RAD) menjadi lebih mudah; kita juga boleh menggunakan antara muka yang dibuat dengan Glade dari bahasa pengaturcaraan lain.
Masalahnya berlaku ketika kita ingin menggunakan aplikasi kita di Microsoft Windows, kerana hingga saat ini tidak ada pakej rasmi untuk sistem ini.
Dengan tutorial ini bertujuan agar aplikasi yang telah dibuat di GNU / Linux menggunakan Python 3 dan GTK + 3 berjalan tanpa masalah pada Windows.
Keperluan
- Python 3.3
- Gtk + 3
- Glade 3.14 atau lebih tinggi (pereka GUI)
- pygobject
Pemasangan pada Windows
Ia akan bermula dengan membuat folder yang dipanggil perisian atau pilihan anda yang lain dan kami akan menyimpan semua pakej yang dimuat turun.
Muat turun pakej pemasangan
Muat turun Python 3.3
Ia boleh dimuat turun dari halaman rasmi Python python.org
Dengan mengklik pautan (Windows Installer) pemasang Python akan memuat turun.
Muat turun Glade
Muat turun laman web: glade.gnome.org
Kedua-dua versi Python dan Glade adalah 32-bit, tetapi berjalan tanpa masalah pada sistem 64-bit
Muat turun PyGObject
Muat turun laman web: https://wiki.gnome.org/PyGObject
Kita mesti memuat turun versi untuk GTK + 3
Memasang pakej
Sehingga kini kita sudah mempunyai semua pakej yang dimuat turun dalam folder perisian dan semasa kami memuat turun setiap pakej, kami akan memulakannya terlebih dahulu dengan pemasangan Python.
Pemasangan Python
Pemasangannya sangat mudah, wizard akan memandu kita melalui prosesnya; Kami meninggalkan semua pilihan yang ditandai secara lalai.
Seperti yang dilihat dalam gambar, Python dipasang di folder C: \ Python33 \ Secara lalai, kami membiarkannya dan meneruskan pemasangan.
Pada titik pemasangan ini, kami memilih pilihan Tambah python.exe ke Path, dengan tujuan bahawa ketika kita melancarkan jurubahasa Python, ia dijalankan tanpa perlu menambahkannya ke jalur sistem secara manual.
Kemudian kami menyelesaikan pemasangan dan Python akan dipasang pada sistem kami.
Pemasangan Glade
Pemasangan glade tidak menimbulkan komplikasi besar, kami menjalankan program pemasangan dan mengikuti langkah-langkah penyihir.
Pemasangan PyGObject
Kami telah memuat turun pakej pygi-aio-3.4.2rev11.7z, pakej ini merangkumi perpustakaan PyGObject untuk Python 3.3 dan GTK + 3 untuk Windows, yang dimampatkan dengan 7-Zip, kami unzipnya dan kami akan mempunyai folder dengan kandungan berikut:
Sekarang kita menyalin folder gtk a C: \ Python33 \ Lib \ pakej laman web di mana pakej pihak ketiga untuk Python dipasang.
Kami kembali ke folder kami pygi-aio-3.4.2Rev11 dan kami membuka folder py33 untuk versi Python iaitu 3.3
Kami memilih semua kandungan folder py33 dan kami menyalinnya semula ke dalam folder C: \ Python33 \ Lib \ pakej laman web, kami akan diminta untuk mencampurkan dan menimpa, kami menjawab dengan tegas. Kandungan folder pakej laman web seperti yang ditunjukkan dalam gambar berikut:
Memeriksa pemasangan PyGobject dan GTK + 3 yang betul
Untuk memastikan bahawa pemasangan kami betul, kami membuka Python IDLE dan mengimport perpustakaan GTK + 3 dan jika kami tidak mempunyai mesej ralat semuanya akan dilakukan dengan betul.
from gi.repository import Gtk
Dan mengapa GTK? Bukankah lebih baik berkembang di QT? selain menjadi pelbagai platform dan banyak yang mengatakan bahawa ia adalah masa depan
Nah, dua perpustakaan grafik hebat di desktop GNU / Linux adalah GTK dan QT, masing-masing memilih yang mereka sukai. Tidak ada alasan untuk melawan.
Perbezaan antara GTK dan QT adalah yang terakhir adalah kerangka kerja, memang sangat bagus, tetapi sebagai kerangka kerja, ia memerlukan lebih banyak sumber.
Contohnya Mozilla Firefox, Google Chrome, LibreOffice dan lain-lain yang panjang dibuat dengan GTK; Ini tidak bermaksud bahawa lebih baik daripada QT, setiap orang harus memilih yang sesuai dengan pilihan dan keperluan mereka, kita tidak mahu menimbulkan perbincangan mengenainya.
Google chrome dari versi 33, tinggalkan gtk.
dan mengapa penjelasan untuk windows dan bukan linux
Adakah kerana di Linux semuanya sudah dibungkus dan di repositori rasmi setiap distro? Sebagai contoh, di Fedora, saya sudah memasang Python 3, Gtk + 3, dan PyGobject secara lalai. Sekiranya saya mahukan Glade, itu hanya "yum install glade". Mudah kan? 🙂
Kerana seperti yang dijelaskan oleh Germán, untuk pengedaran GNU / Linux mereka sudah dibungkus dan sangat mudah untuk memasangnya; contohnya memasang glade di Debian sangat mudah:
pemasangan glade
Sekiranya saya ingin menggunakan Python 2.7 adakah langkahnya sama?
Jelas sekali, memasang Python 2.7 32-bit (walaupun anda menggunakan OS 64-bit) dan bukannya folder py33, 2.7 akan berjalan. Adakah ia akan berjaya?
Terima kasih.
Baiklah, jika anda mempunyai masalah, tinggalkan komen saya.
Nasib.
Terima kasih, saya telah mencubanya dan buat masa ini "Hello world" berfungsi untuk saya.
Saya melihat sama ada saya boleh mendapatkan tutorial pyGTK3 yang baik atau apa sahaja yang dipanggil dan sebarang masalah, amaran.
Tutorial:
https://python-gtk-3-tutorial.readthedocs.org/en/latest/index.html
Caramba! Terima kasih banyak-banyak!
Menguji GTK3 dengan Python 2.7 pada Windows dan mengikuti tutorial. Setakat ini semua program berfungsi untuk saya, kecuali yang terdapat dalam Bab 14 (IconView -> https://python-gtk-3-tutorial.readthedocs.org/en/latest/iconview.html)
Ini memberi saya ralat berikut:
Jejak balik (panggilan terakhir terakhir):
Fail "C: \ Users \ User \ Desktop \ test.py", baris 24, dalam
win = IconViewWindow ()
Fail "C: \ Users \ User \ Desktop \ test.py", baris 19, dalam __init__
pixbuf = Gtk.IconTheme.get_default (). load_icon (ikon, 64, 0)
Fail "C: \ Python27 \ lib \ site-package \ gi \ types.py", baris 47, dalam fungsi
mengembalikan maklumat.invoke (* args, ** kwargs)
GError: Ikon 'gtk-cut' tidak terdapat dalam tema
Saya mencubanya dengan ikon lain dan ia juga tidak berfungsi. Adakah saya perlu memasang tema? Terima kasih sejak sekarang.
Contoh 19. Seret dan Lepas.
Fungsi yang memanggil dalam kedua-dua kes dan di sinilah saya mendapat ralat adalah:
pixbuf = Gtk.IconTheme.get_default (). load_icon (ikon_nama, 16, 0)
Saya tidak dapat mencari ikon, tetapi dalam contoh lain anda boleh menggunakannya. Ini hanya memberi saya ralat ketika saya ingin menggunakannya dengan fungsi itu (di sini icon_name boleh diganti dengan nilai seperti Gtk.STOCK_CUT atau apa sahaja dan ia memberikan ralat yang sama).
Saya terus bercakap dengan diri sendiri. Apa yang sesuai untuk saya dalam contoh lain ialah gambar memuatkan pada butang. Saya tidak dapat memuat ikon dengan fungsi yang terdapat dalam dua contoh yang saya berikan sebelumnya.
Saya rasa kesalahannya jelas:
GError: Ikon 'gtk-cut' tidak terdapat dalam tema
Nampaknya ikon itu tidak tersedia, gunakan ikon lain. Mungkin penyelenggara pakej tidak menyertakan ikon tema atau tidak dapat dijumpai di jalan lalai, gunakan sebaran GNU / Linux dan lihat apakah ralat yang sama masih muncul.
Mengenai soalan 19, ini nampaknya berkaitan dengan versi PyGobject, di bahagian atas dokumentasi tertulis:
Nota
Versi PyGObject = 3.0.3 diperlukan agar contoh berikut berfungsi.
Versi yang anda ada ialah 3.0, cuba sebarkan GNU / Linux; dan kemudian kita harus menunggu mereka mengemas kini pakej (untuk Windows) atau dalam keadaan apa pun anda boleh menyusunnya sendiri.
Salam dan teruskan.
Di Ubuntu semua contoh tutorial berfungsi dengan sempurna untuk saya. Pada Windows, ia masih tidak berfungsi. Saya mesti menunggu. Satu lagi yang tidak berjalan adalah contoh Spinner, yang tidak melakukan animasi. Salam dan terima kasih.
Saya telah mengikuti tutorial pemasangan dan memasang semuanya langkah demi langkah.
Dan melaksanakan kod berikut:
dari gi.repository import Gtk
kelas FiestraPrinsip:
def __init __ (diri):
nama fail = "/ data / dam / Python exemplars / Saudoform"
pembina = Gtk.builder ()
buildor.add_from_file (nama fail)
#dictionary di mana kita mengaitkan sinais dengan peristiwa
sinais = {
«ClickedAccept»: self.clic_boton,
"ActivateTextCadro": self.clic_boton,
"DestroyFiestra": Gtk.main_quit
}
pembina.connect_signals (sinais)
#Kami mendapat rujukan kepada deskriptor XML untuk dapat mengakses
self.label = self.widgets_widget ("Label")
self.cadroTexto = self.widgets_widget ("CadroTexto")
def button_click (diri, widget):
teks = self.cadroTexto.get_text ()
self.label.set_text (teks "gelombang% s"%)
jika __nama__ == »__ main__»:
FiestraPrinsipal ()
Gtk.Main ()
Saya mendapat jawapan ini:
Jejak balik (panggilan terakhir terakhir):
Fail «C: / Users / admin / Google Drive / test / SaudoForm.py», baris 3, dalam
dari gi.repository import Gtk
Fail "C: \ Python33 \ lib \ site-package \ gi \ __ init__.py", baris 27, di
dari ._gi import _API, Repositori
ImportError: Pemuatan DLL gagal:% 1 bukan aplikasi Win32 yang sah.
Seseorang tahu apa masalahnya, atau apakah penyelesaiannya yang mungkin.
Terima kasih banyak.
Menarik. Saya telah melakukan pemasangan di linux, tetapi penjelasan untuk windows baik-baik saja, sekarang saya mempunyai kedua-duanya. 😉
Ia lucu pada windows 7 bit pertama kali.
Pada Windows 7 64 bit, saya tidak dapat menjalankannya, saya selalu mendapatkannya;
>>> dari gi.repository import Gtk
Jejak balik (panggilan terakhir terakhir):
Fail «», baris 1, dalam
Fail "C: \ Python33 \ lib \ site-package \ gi \ __ init__.py", baris 27, di
dari ._gi import _API
Kesalahan Import: Beban DLL gagal: Proses yang ditentukan tidak dijumpai.
Saya sudah mencubanya, saya sudah kehilangan khayalan memasangnya
Anda akan melihat perpustakaan 64-bit masih mempunyai beberapa bug, sila pasang versi 32-bit python dan GTK + supaya anda tidak menghadapi masalah.
Anda tidak boleh kehilangan ilusi 🙂
Hai saya bekerja dengan python + gtk3, sangat baik sekarang saya menghadapi masalah sedikit saya mahu menukar ikon ke bentuk saya (tetingkap) dalam kes ini dan saya boleh mengubahnya, terima kasih sebelumnya, Salam
menerbitkan video mudah mengenai cara memprogram di gtk + 3 dan ucapan tutorial ringkas
Tutorial yang sangat baik. Terima kasih banyak atas usaha anda. Salam.
Saya melakukan semua langkah dan ketika mempercayai pemasangan, saya mendapat ralat ini.
Jejak balik (panggilan terakhir terakhir):
Fail «», baris 1, dalam
dari gi.repository import Gtk
ImportError: Tiada modul bernama 'gi'