Créez vos propres applications de «navigateur Web» et «enregistreur de bureau» à l'aide de PygObject - Partie 3
- 3854
- 1084
- Maëlle Perez
C'est le 3e Une partie de la série sur la création d'applications GUI sous le bureau Linux à l'aide de PygObject. Aujourd'hui, nous parlerons d'utiliser des modules et bibliothèques Python avancés dans nos programmes comme 'OS','Webkit','demandes'Et d'autres, à côté de certaines autres informations utiles pour la programmation.
Créer son propre navigateur Web et enregistreur - Partie 3Exigences
Vous devez passer par toutes ces parties précédentes de la série à partir d'ici, pour poursuivre les instructions supplémentaires sur la création de plus d'applications avancées:
- Créer des applications GUI sous Linux Desktop à l'aide de PygObject - Partie 1
- Création d'applications PygObject à l'avance sur Linux - Partie 2
Les modules et les bibliothèques de Python sont très utiles, au lieu d'écrire de nombreux sous-programmes pour faire des emplois compliqués qui prendront beaucoup de temps et de travail, vous pouvez simplement les importer ! Oui, importez simplement les modules et les bibliothèques dont vous avez besoin dans votre programme et vous pourrez économiser beaucoup de temps et d'efforts pour terminer votre programme.
Il existe de nombreux modules célèbres pour Python, que vous pouvez trouver chez Python Module Index.
Vous pouvez également importer des bibliothèques pour votre programme Python, à partir de «gi.Importation du référentiel GTK"Cette ligne importe la bibliothèque GTK dans le programme Python, il existe de nombreuses autres bibliothèques comme GDK, webkit… etc.
Création d'applications d'avance GUI
Aujourd'hui, nous allons créer 2 programmes:
- Un navigateur Web simple; qui utilisera la bibliothèque webkit.
- Un enregistreur de bureau utilisant la commande 'avconv'; qui utilisera le module «OS» de Python.
Je n'expliquerai pas comment faire glisser et déposer des widgets dans le Clairière Designer à partir de maintenant, je vais simplement vous dire le nom des widgets que vous devez créer, en plus je vous donnerai le .clairière fichier pour chaque programme et le fichier python à coup sûr.
Création d'un navigateur Web simple
Afin de créer un navigateur Web, nous devrons utiliser le «Webkit”Moteur, qui est un moteur de rendu open source pour le web, c'est le même qui est utilisé dans Chrome/ /Chrome, Pour plus d'informations à ce sujet, vous pouvez vous référer au webkit officiel.site Web de l'organisation.
Tout d'abord, nous devrons créer l'interface graphique, ouvrir le Clairière concepteur et ajouter les widgets suivants. Pour plus d'informations sur la façon de créer des widgets, suivez le Partie 1 et Partie 2 de cette série (liens donnés ci-dessus).
- Créer un widget 'Window1'.
- Créer un widget 'Box1' et 'Box2'.
- Créer un widget 'Button1' et 'Button2'.
- Créer un widget 'entrée1'.
- Créer un widget 'ScrolledWindow1'.
Après avoir créé des widgets, vous obtiendrez l'interface suivante.
Interface de glaceIl n'y a rien de nouveau, sauf le «Fenêtre”Widget; Ce widget est important pour permettre le Webkit moteur à implanter à l'intérieur, en utilisant le «Fenêtre”Widget, vous pourrez également faire défiler horizontalement et verticalement pendant que vous parcourez les sites Web.
Vous devrez maintenant ajouter "Backbutton_Clicked”Handler au Dos bouton "cliqué«Signal,«RefreshButton_Clicked"Handler sur le bouton de rafraîchissement"Signal cliqué" et "enterkey_clicked”Handler au«activé”Signal pour l'entrée.
Le complet .clairière Le fichier pour l'interface est ici.
FAUX Notre simple navigateur Centre 1000 600 Applications-Internet True False False Vrai False GTK-GO-Back True True True Half True False False True 0 GTK-rafraîchir true true true half true true false true 1 vrai true true 2 false true 0 true toujours toujours dans true true 1
Copiez maintenant le code ci-dessus et collez-le dans le «ui.clairière"Fichier dans votre dossier à domicile. Créez maintenant un nouveau fichier appelé "mywebbrowser.py»Et entrez le code suivant à l'intérieur, toutes les explications sont dans les commentaires.
#!/ usr / bin / python # - * - codage: utf-8 - * - ## Ici, nous avons importé à la fois la bibliothèque GTK et le moteur WebKit. de Gi.Repository Import GTK, webkit Class Handler: def backbutton_clicked (self, bouton): ## Lorsque l'utilisateur clique sur le bouton arrière, le '.go_back () 'La méthode est activée, qui enverra automatiquement l'utilisateur à la page précédente, cette méthode fait partie du moteur Webkit. détenteur de navigateur.go_back () def Refreshbutton_clicked (self, bouton): ## Même chose ici, le '.La méthode reload () 'est activée lorsque le bouton «actualiser» est cliqué. détenteur de navigateur.recharger () def enterkey_clicked (self, bouton): ## Pour charger automatiquement l'URL lorsque la touche "Entrée" est appuyée sur le clavier tout en nous concentrant sur la zone d'entrée, nous devons utiliser le '.load_uri () 'Méthode et saisissez l'URL de la boîte d'entrée. détenteur de navigateur.load_uri (urlentry.get_text ()) ## rien de nouveau ici… nous venons d'importer l'interface utilisateur.Fichier Glade. constructeur = gtk.Constructeur () constructeur.add_from_file ("ui.Glade ") constructeur.connect_signals (handler ()) window = builder.get_object ("window1") ## Voici la nouvelle pièce… Nous avons créé un objet global appelé «Browserholder» qui contiendra le moteur de rendu Webkit, et nous le définissons sur «Webkit.WebView () 'C'est la chose par défaut à faire si vous souhaitez ajouter un moteur WebKit à votre programme. Browserholder = webkit.WebView () ## pour interdire l'édition de la page Web. détenteur de navigateur.set_editable (false) ## L'URL par défaut à charger, nous avons utilisé la méthode 'Load_uri ()'. détenteur de navigateur.load_uri ("https: // tecmint.com ") urlentry = builder.get_object ("entry1") urlentry.set_text ("https: // tecmint.com ") ## Ici, nous avons importé l'objet ScrolledWindow1 de l'interface utilisateur.fichier GLADE. Scrolled_Window = Builder.get_object ("ScrolledWindow1") ## Nous avons utilisé le '.Ajouter () 'Méthode' Méthode pour ajouter l'objet 'Browserholder' à la fenêtre défilée, qui contient notre navigateur WebKit. Scrolled_window.Ajouter (navigateur de navigateur) ## Et enfin, nous avons montré l'objet 'Browserholder' en utilisant l'office '.Méthode show () '. détenteur de navigateur.show () ## donner à ce développeur un cookie ! fenêtre.connecter ("Delete-Event", GTK.Fenêtre Main_Quit).show_all () gtk.principal()
Enregistrez le fichier et exécutez-le.
$ chmod 755 mywebbrowser.py $ ./ mywebbrowser.py
Et c'est ce que vous obtiendrez.
Créer son propre navigateur WebVous pouvez vous référer pour le Webkitgtk Documentation officielle afin de découvrir plus d'options.
Création d'un enregistreur de bureau simple
Dans cette section, nous apprendrons à exécuter des commandes système locales ou des scripts shell à partir du fichier Python à l'aide du 'OS'Module, qui nous aidera à créer un enregistreur d'écran simple pour le bureau en utilisant le'avconv' commande.
Ouvrez le Glade Designer et créez les widgets suivants:
- Créer un widget 'Window1'.
- Créer un widget 'box1'.
- Créer des widgets 'Button1', 'Button2' et 'Button3'.
- Créer un widget 'entrée1'.
Après avoir créé lesdits widgets ci-dessus, vous obtiendrez en dessous de l'interface.
Interface UI GladeVoici le complet ui.clairière déposer.
FAUX Notre simple enregistreur Centre 300 30 Applications-Multimedia True Faux True True False True 0 GTK-Media-Record True True True True True True 1 GTK-Media-stop True True True True True True 2 GTK-Media-Play True True Vrai True True True True 3
Comme d'habitude, copiez le code ci-dessus et collez-le dans le fichier "ui.clairière"Dans votre annuaire domestique, créez un nouveau"myRecorder.py»Fichier et entrez le code suivant à l'intérieur (chaque nouvelle ligne est expliquée dans les commentaires).
#!/ usr / bin / python # - * - codage: utf-8 - * - ## Ici, nous avons importé à la fois la bibliothèque GTK et le module OS. de Gi.Référentiel Importation GTK Import OS Class Handler: DEF RecordButton (self, bouton): ## Nous avons défini une variable: 'filepathAndName', nous avons attribué la variable locale bash '$ home' à it + "/" + le nom du fichier à partir du texte boîte d'entrée. filepathandName = os.Environ ["Home"] + "/" + Entrée.get_text () ## Ici a exporté la variable «filepathandname» de Python à la variable «nom de fichier» dans le shell. OS.Environ ["FileName"] = FilePathandName ## en utilisant 'OS.Système (Commande) «Nous pouvons exécuter n'importe quelle commande shell ou script shell, nous avons ici exécuté la commande« AvConv »pour enregistrer la vidéo et l'audio de bureau. OS.Système ("Avconv -f x11grab -r 25 -s 'xdpyinfo | grep' Dimensions: '| awk' print $ 2" - i: 0.0 -vcodec libx264 -threads 4 $ nom de fichier -y & ") def stopbutton (self, bouton): ## Exécutez la commande 'killall avconv' lorsque le bouton d'arrêt est cliqué. OS.système ("killall avconv") def playbutton (bouton self, bouton): ## Exécutez la commande 'avPlay' dans le shell pour lire le fichier enregistré lorsque le bouton de lecture est cliqué. OS.système ("avPlay $ filename &") ## rien de nouveau ici… nous venons d'importer l'interface utilisateur.Fichier Glade. constructeur = gtk.Constructeur () constructeur.add_from_file ("ui.Glade ") constructeur.connect_signals (handler ()) window = builder.get_object ("window1") entrée = builder.Entrée get_object ("entry1").set_text ("MyRecording-File.Avi ") ## Donnez à ce développeur un cookie ! fenêtre.connecter ("Delete-Event", GTK.Fenêtre Main_Quit).show_all () gtk.principal()
Exécutez maintenant le fichier en appliquant les commandes suivantes dans le terminal.
$ chmod 755 MyRecorder.py $ ./ MyRecorder.py
Et vous avez votre premier enregistreur de bureau.
Créer un enregistreur de bureauVous pouvez trouver plus d'informations sur le 'OS'Module à la bibliothèque Python OS.
Et c'est tout, créer des applications pour le bureau Linux n'est pas difficile en utilisant Pygobject, Il vous suffit de créer l'interface graphique, d'importer des modules et de lier le fichier Python avec l'interface graphique, rien de plus, rien de moins. Il existe de nombreux tutoriels utiles sur cela dans le site Web de PygObject:
Avez-vous essayé de créer des applications à l'aide de pygObject? Que pensez-vous de le faire? Quelles applications avez-vous développées avant?
- « 11 Commandes 'AVConv' pour enregistrer, convertir et extraire des vidéos et des audios du terminal Linux
- Comment installer et configurer le «serveur DNS de cache uniquement» avec «Unbound» dans RHEL / CENTOS 7 »