Bu basit adımlarla Python ve Qt ile kendi web uygulamalarınızı oluşturun

Python ve Qt ile web uygulamaları oluşturma

W web uygulamaları Kalmak için buradalar ve giderek daha fazla kullanılıyorlar. Bir süre önce Twitter gibi servisler çok farklıydı, şimdi ise girdiğimiz cihazın ekranına uyum sağlayan bir tür mobil uygulama haline geldi. Ancak bu uygulamaların dezavantajı, tarayıcıda çalışıyor olmaları ve bu günlerde kaynak yoğun olmayan çok az tarayıcı var. Olabilir, ama ya daha hafif, hatta daha fazla bir şey olsaydı? linux mint'in sundukları?

Elbette, Chromium tabanlı bir tarayıcı kullanabilir ve bir kısayol oluşturabilir veya uygulamayı yükleyebiliriz ve sahip olacağımız şey, tam tarayıcıdan daha az kaynak tüketecek gevşek bir sekme gibi olacaktır. Doğru, bu bir olasılık, ancak yüklenmesi gereken ağa bağlı olarak ağırlık değişebilir ve bence hiç de düşük değil. Qt Web içeriğini görüntülemek için bir pencere öğesi sunar ve buradaki sır, bu web'i Python kullanarak yükleyen basit bir uygulama oluşturmaktır. Diğer dillerle mümkündür, ancak Python en uygun fiyatlı olanıdır.

Python ile bir web uygulaması nasıl oluşturulur?

Devam etmek için birkaç paketin kurulu olması gerekir. Tabii ki, web uygulamasını ile çalıştırmak istiyorsak Python, ihtiyacımız olacak Python; dağıtımımızın sürümü geçerli olmalıdır. Ayrıca PyQt5 webengine paketinin kurulu olması gerekir (PyQt6 paketi de geçerlidir, ancak kod değişir) ve tam adı kullandığımız dağıtıma bağlı olacaktır. Arch Linux ve türevlerinde python-pyqt5-webengine olarak bulunur ve Ubuntu ve türevlerinde genellikle python3-pyqt5.qtwebengine şeklindedir. Bu paketler yüklendikten sonra, kendi web uygulamalarımızı oluşturmak için her şeye sahip oluruz. İzlenecek adımlar şunlar olacaktır:

  1. Yeni bir metin dosyası oluşturuyoruz. Adı önemli olmayacak, ancak ne olduğunu bilmemiz için açıklayıcı olmaya değer. Python kullanacaksak uzantı .py olmalıdır.
  2. Daha sonra açıklamak için bu kodu yapıştırıyoruz:
#!/usr/bin/env PyQt3'ten python5'ü içe aktar PyQt5'ten QtCore, QtGui, QtWidgets'ı içe aktar QtWebEngineWidgets sınıfı Ui_MainWindow(nesne): def setupUi(self, MainWindow): MainWindow.setObjectName("MainWindow") MainWindow.set100Geometry(100 , 1200, 760) MainWindow.setMinimumSize(400, 500) self.centralwidget = QtWidgets.QWidget(MainWindow) self.centralwidget.setObjectName("centralwidget") self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidgetEngine) self.webWebEngineView = . .QWebEngineView(self.centralwidget) self.verticalLayout.addWidget(self.webEngineView) self.verticalLayout.setContentsMargins(0, 0, 0, 0) self.webEngineView.setUrl(QtCore.QUrl("https://pluto.tv" )) self.webEngineView.setObjectName("webEngineView") MainWindow.setCentralWidget(self.centralwidget) if __name__ == "__main__": import sys app = QtWidgets.QApplication(sys.argv) MainWindow = QtWidgets.QMainWindow() ui = Uindow () ui.setupUi(MainWindow) MainWindow.show() sys.exit(app.exec_())

Python olarak girintiye, yani sol kenardan ilk harfe kadar olan boşluklara dikkat etmelisiniz. Aynı sınıfa veya işleve ait olan her şey doğru ve aynı yükseklikte değilse, Python başka bir yere ait olduğunu algılar ve çalışmaz. Ama adım adım gidelim.

  1. Pluto TV uygulamasını oluşturmak istediğimizi ve dosyamızın adının pluto.py olduğunu varsayalım. Pluto.py'ye ikincil olarak tıklıyoruz, tercihlere gidiyoruz ve çalıştırılabilir olarak işaretliyoruz. Ayrıca bir terminal açıp şunu yazabiliriz:
chmod +x pluto.py
  1. Şimdi onu çift tıklama ile açabilmeliyiz, ancak bunu önce terminalden yapmaya değer. Bir tanesini açıp python pluto.py yazıyoruz. Bazı dağıtımlarda "python"u "python3" olarak değiştirmek gerekebilir.
  2. Açıldığını görürsek, web uygulamamızı zaten oluşturduk. Uygulamalar menüsünde veya her neyse görünmesi için bir .desktop dosyası oluşturabiliriz, ancak uygulama zaten oluşturulmuş olacaktır. Uygulama çalışıyorsa, terminalde görünen hata mesajları göz ardı edilebilir.

kodu açıklama

Yukarıdaki koddan ilk satır, dosyayı neyin açacağını gösteren "shebang" dır. Herhangi bir Linux dağıtımında benim için çalıştı, ancak bazılarında değişebilir. Python ile açmak diyor. Ardından bir ana pencere nesnesi olan bir sınıf oluşturulur. İçeride kullanıcı arayüzünü gösterecek fonksiyona sahibiz. .setGeometry() ve .setMinimumSize() yöntemleri, açıldığında hangi boyutlara sahip olacağı ve minimum boyutun ne olduğu içindir. .setGeometry()'de ayrıca iki sayı (100,100) belirtmeniz gerekir; diğerleri ölçülerdir. Ardından, web sayfasını görüntülemek için widget'ı oluşturan satırlar gelir ve son şey (eğer __name__… ise) uygulamayı başlatan şeydir. Web uygulaması tek olacak QUrl yöntemi etrafındaki tırnak işaretleri arasında.

Not: web uygulamaları temel bir görüntüleyicide görüntülenir

Bunun, Photopea'yı Chromium tabanlı bir tarayıcıya yüklemekten daha iyi olduğunu düşünen herkes, unut gitsin. Elbette bu web uygulamaları, tarayıcıda yaptıkları gibi çalışacak şekilde geliştirilebilir, ancak başlıkta yer alan basit adımlarla değil. Bu, YouTube, Pluto TV, Twitter gibi uygulamalara sahip olmanıza hizmet edecek ... ancak dosya indiremezsiniz, şifreleri kaydetmez veya uzantıları yükleyebilir.

Bununla ilgili en iyi şey, tam da yalnızca temel ve sınırlı bir görüntüleyici olduğu için web uygulamasının daha az kaynak tüketecek bir Chromium'dan daha. Photopea'da ise ne belgelerin nereye kaydedileceğini soran widget'lar, ne de bunların sabit diske yazılmasına neden olan herhangi bir işlevi olmadığı için görüntüler kaydedilemiyor. Denedim ve pencerenin içinde sürüklenerek yükseltilebilirler, ancak indirilemezler. Bu özel durumda yapılabilecek şey, sürümü paylaşmak, bize verdiği bağlantıyı kopyalayıp başka bir yerde açmak, ancak bağlantı Photopea'yı açıyor... Zaten söyledim, basit.

Ancak temel işe yaramaz değildir ve birine yardımcı olabilirse memnun olurum.


Yorumunuzu bırakın

E-posta hesabınız yayınlanmayacak. Gerekli alanlar ile işaretlenmiştir *

*

*

  1. Verilerden sorumlu: AB Internet Networks 2008 SL
  2. Verilerin amacı: Kontrol SPAM, yorum yönetimi.
  3. Meşruiyet: Onayınız
  4. Verilerin iletilmesi: Veriler, yasal zorunluluk dışında üçüncü kişilere iletilmeyecektir.
  5. Veri depolama: Occentus Networks (AB) tarafından barındırılan veritabanı
  6. Haklar: Bilgilerinizi istediğiniz zaman sınırlayabilir, kurtarabilir ve silebilirsiniz.