惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

H
Help Net Security
博客园 - Franky
GbyAI
GbyAI
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
爱范儿
爱范儿
IT之家
IT之家
酷 壳 – CoolShell
酷 壳 – CoolShell
aimingoo的专栏
aimingoo的专栏
博客园_首页
MongoDB | Blog
MongoDB | Blog
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
Recent Announcements
Recent Announcements
Scott Helme
Scott Helme
有赞技术团队
有赞技术团队
M
MIT News - Artificial intelligence
C
CERT Recently Published Vulnerability Notes
K
KPMG report finds enterprise disconnect between AI and its ROI | CIO
Jina AI
Jina AI
F
Fortinet All Blogs
N
Netflix TechBlog - Medium
L
LangChain Blog
L
LINUX DO - 最新话题
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
H
Hacker News: Front Page
MyScale Blog
MyScale Blog
P
Palo Alto Networks Blog
G
Google Developers Blog
Google DeepMind News
Google DeepMind News
AI
AI
T
Troy Hunt's Blog
Microsoft Azure Blog
Microsoft Azure Blog
阮一峰的网络日志
阮一峰的网络日志
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Vercel News
Vercel News
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
S
Secure Thoughts
大猫的无限游戏
大猫的无限游戏
博客园 - 叶小钗
人人都是产品经理
人人都是产品经理
Blog — PlanetScale
Blog — PlanetScale
博客园 - 司徒正美
Apple Machine Learning Research
Apple Machine Learning Research
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
S
Security @ Cisco Blogs
Cloudbric
Cloudbric
E
Exploit-DB.com RSS Feed
Attack and Defense Labs
Attack and Defense Labs

博客园 - mikespook

发现不少朋友给我的 blog 链接还是这里 又建立了一个新BLOG 在博客园申请了PHP博客 每日一翻,今日完成 翻译记录 翻译 Debian 软件包简介信息 【收藏】让错误的程序看得出错 魔力论坛2.1.4转PHPWind4.3.2程序 一些PHP相关的数据比较 赋诗一首另杂论点点 XYPatch,Windows XP手工升级补丁 Apache 2.2.0 + PHP 5.1.2 在Debian下手工安装备忘 MYSQL 5.0.19在Debian下手工安装备忘 十年——透过BILL的眼睛 看看你适合用什么样的LINUX linux的rtl8180芯片无线网卡安装 MD5碰撞的源代码放出了 debian桌面系统安装备忘 在fvwm中将右手习惯改为左手习惯的简单办法
一个Python-GTK的程序,用来关机,重启
mikespook · 2005-11-17 · via 博客园 - mikespook

需要备忘一下的是gui下代替sudo,su的程序是gksu.可惜是英文的界面.
还可以用glade设计gtk的界面,可惜我是写完这个程序才知道.

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

 1#!/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