在 Ubuntu 上用 Python 锁定 PC
我正在做使用 pyGtk 锁定 PC 的应用程序,但我有一个问题,当我单击“确定”按钮时,按钮的功能应该从文本框中获取时间,隐藏窗口然后休眠一段时间,最后使用 bash 命令锁定电脑。但它就是不隐藏。
这是完整程序
i'm doing application that locks the PC using pyGtk, but i have a problem, when i click on the ok button the function of the button should get the time from the textbox, hide the window then sleep for a while, and at last lock the pc using a bash command. but it just don't hide.
and here is the complete program
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
假设您在 Ubuntu 上使用 Gnome
Provided you are using Gnome on Ubuntu
主类成为线程有什么理由吗?我会把它变成一个普通的类,这样调试起来会容易得多。它不起作用的原因是所有与 gtk 相关的事情都必须在 gtk 线程中发生,所有小部件方法调用也是如此:
gobject.idle_add(widget.method_name)
。因此,要隐藏密码窗口:gobject.idle_add(self.pwdWindow.hide)
当然,您必须首先
import gobject
(您可能需要先安装它) 。编辑:我不认为这是你的问题,不管怎样,我对你的程序进行了很多编辑,这里是修改后的代码。
Is there any reason for the main class to be a thread? I would make it just a normal class, which would be a lot easier to debug. The reason its not working is that all gtk related stuff must happen in the gtk thread, so do all widget method calls like this:
gobject.idle_add(widget.method_name)
. So to hide the password window:gobject.idle_add(self.pwdWindow.hide)
You'll have to
import gobject
first of course (You might need to install it first).EDIT: I don't think that that was your problem, either way I edited your program a lot, here is the modified code.