设为首页 收藏本站
查看: 1259|回复: 0

[经验分享] 一个Python-GTK的程序,用来关机,重启

[复制链接]

尚未签到

发表于 2015-4-27 07:54:27 | 显示全部楼层 |阅读模式
  需要备忘一下的是gui下代替sudo,su的程序是gksu.可惜是英文的界面.
还可以用glade设计gtk的界面,可惜我是写完这个程序才知道.

2005.11.18
封装了一个imagebutton出来,也算是对python的进一步学习吧~~~window的样式也做了修改~~~现在基本上已经可以正常使用了~~~我把我那个丑陋的fvwm菜单的退出已经换为这个了~~



1 DSC0000.gif #!/usr/bin/python
2import pygtk
3import gtk
4import os
5import sys
6
7class BaseWindow:
8     
9  def delete_event(self, widget, data=None):
10    print "delete_event"
11
12  def destroy(self, widget, data=None):
13    gtk.main_quit()
14
15  def loginout(self, widget, data=None):
16    os.system("fvwm -r")
17
18  def shutdown(self, widget, data=None):
19    os.system("shutdown -h now")
20
21  def reboot(self, widget, data=None):
22    os.system("shutdown -r now")
23  
24  def restart(self, widget, data=None):
25    os.system("fvwm -r")
26  def exit(self, widget, data=None):
27    sys.exit()
28   
29  def __init__(self):
30    self.window = gtk.Window(gtk.WINDOW_POPUP)
31    self.window.set_title("xyShutdown")
32    self.window.set_position(gtk.WIN_POS_CENTER)
33    self.window.set_modal(True)
34    self.window.set_icon_name("gtk-quit")
35    self.window.set_resizable(False)
36    self.window.set_decorated(True)
37    self.window.set_keep_above(True)
38    self.window.connect("destroy", self.destroy)
39    self.window.connect("delete_event", self.delete_event)
40
41    self.boxv = gtk.VBox(False, 0)
42    self.window.add(self.boxv)
43   
44    self.btnShutdown = xyImageButton("关闭电脑", "quit.xpm")
45    self.btnShutdown.connect("clicked", self.shutdown, None)
46    self.boxv.pack_start(self.btnShutdown, True, True, 0)
47   
48    self.btnReboot = xyImageButton("重启电脑", "restart.xpm")
49    self.btnReboot.connect("clicked", self.reboot, None)
50    self.boxv.pack_start(self.btnReboot, True, True, 0)
51   
52    self.btnRestart = xyImageButton("退出登录", "restart.xpm")
53    self.btnRestart.connect("clicked", self.restart, None)
54    self.boxv.pack_start(self.btnRestart, True, True, 0)
55
56
57    self.btnCancel = xyImageButton("取消操作", "exit.xpm")
58    self.btnCancel.connect("clicked", self.exit, None)
59    self.boxv.pack_start(self.btnCancel, True, True, 0)
60
61    self.btnCancel.show()
62    self.btnRestart.show()
63    self.btnReboot.show()
64    self.btnShutdown.show()
65    self.boxv.show()
66    self.window.show()
67
68  def main(self):
69    gtk.main()
70
71
72class xyImageButton(gtk.Button):
73  def __init__(self, text, image):
74    gtk.Button.__init__(self)
75    hbox = gtk.HBox(False, 0)
76    img = gtk.Image()
77    img.set_from_file(image)
78    img.show()
79    hbox.pack_start(img, True, True, 0)
80    lbl = gtk.Label(text)
81    lbl.show()
82    hbox.pack_start(lbl, True, True, 0)
83    hbox.show()   
84    self.add(hbox)
85   
86baseWindow = BaseWindow()
87baseWindow.main()
88

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-60928-1-1.html 上篇帖子: python logging 模块完整使用示例 下篇帖子: Python学习(六)
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表