2009-09-03 9 views
2

Je fais une application qui verrouille le PC en utilisant pyGtk, mais j'ai un problème, quand je clique sur le bouton ok, la fonction du bouton devrait obtenir le temps de la zone de texte, cacher la fenêtre puis dormez pendant un moment, et enfin verrouiller le PC en utilisant une commande bash. mais ça ne se cache pas.Verrouiller PC en Python sur Ubuntu

et voici le complete program

+1

Nous avons besoin de plus d'informations, s'il vous plaît poster tout le code pertinent. –

Répondre

3

Pourvu que vous utilisez Gnome sur Ubuntu

import os 

os.system('gnome-screensaver-command –-lock') 
+1

Son problème est que sa fenêtre ne se cache pas. –

+0

J'utilise déjà cette commande pour verrouiller mon écran mais j'ai besoin de cacher la fenêtre –

1

Y at-il raison de la classe principale d'être un fil? Je voudrais en faire un cours normal, ce qui serait beaucoup plus facile à déboguer. La raison pour laquelle cela ne fonctionne pas est que toutes les choses liées à gtk doivent se produire dans le thread gtk, donc faites tous les appels de méthode de widget comme ceci: gobject.idle_add(widget.method_name). Donc, pour masquer la fenêtre de mot de passe:

Vous devrez d'abord import gobject (Vous devrez peut-être d'abord l'installer).

EDIT: Je ne pense pas que c'était votre problème, de toute façon j'ai beaucoup modifié votre programme, voici le code modifié.

+0

J'ai essayé ce que vous avez dit mais le même problème se produit –

+0

Puis-je voir votre code modifié? –

+0

Je viens de remarquer que vous avez mis à jour le lien vers votre code voir ma réponse éditée. –