<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
<channel>
<title><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></title> 
<link>http://www.jackxiang.com/index.php</link> 
<description><![CDATA[赢在IT，Playin' with IT,Focus on Killer Application,Marketing Meets Technology.]]></description> 
<language>zh-cn</language> 
<copyright><![CDATA[向东博客 专注WEB应用 构架之美 --- 构架之美，在于尽态极妍 | 应用之美，在于药到病除]]></copyright>
<item>
<link>http://www.jackxiang.com/post//</link>
<title><![CDATA[一个Python-GTK的程序,用来关机,重启 ]]></title> 
<author>jack &lt;xdy108@126.com&gt;</author>
<category><![CDATA[WEB2.0]]></category>
<pubDate>Thu, 07 Oct 2010 03:55:46 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//</guid> 
<description>
<![CDATA[ 
	需要备忘一下的是gui下代替sudo,su的程序是gksu.可惜是英文的界面.<br/>还可以用glade设计gtk的界面,可惜我是写完这个程序才知道.<br/><br/>封装了一个imagebutton出来,也算是对python的进一步学习吧~~~window的样式也做了修改~~~现在基本上已经可以正常使用了~~~我把我那个丑陋的fvwm菜单的退出已经换为这个了~~<br/><br/><div class="code">#!/usr/bin/python<br/>import pygtk<br/>import gtk<br/>import os<br/>import sys<br/><br/>class BaseWindow:<br/>&nbsp;&nbsp;&nbsp;&nbsp; <br/>&nbsp;&nbsp;def delete_event(self, widget, data=None):<br/>&nbsp;&nbsp;&nbsp;&nbsp;print &quot;delete_event&quot;<br/> <br/>&nbsp;&nbsp;def destroy(self, widget, data=None):<br/>&nbsp;&nbsp;&nbsp;&nbsp;gtk.main_quit()<br/><br/>&nbsp;&nbsp;def loginout(self, widget, data=None):<br/>&nbsp;&nbsp;&nbsp;&nbsp;os.system(&quot;fvwm -r&quot;)<br/><br/>&nbsp;&nbsp;def shutdown(self, widget, data=None):<br/>&nbsp;&nbsp;&nbsp;&nbsp;os.system(&quot;shutdown -h now&quot;)<br/><br/>&nbsp;&nbsp;def reboot(self, widget, data=None):<br/>&nbsp;&nbsp;&nbsp;&nbsp;os.system(&quot;shutdown -r now&quot;)<br/>&nbsp;&nbsp;<br/>&nbsp;&nbsp;def restart(self, widget, data=None):<br/>&nbsp;&nbsp;&nbsp;&nbsp;os.system(&quot;fvwm -r&quot;)<br/>&nbsp;&nbsp;def exit(self, widget, data=None):<br/>&nbsp;&nbsp;&nbsp;&nbsp;sys.exit()<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;def __init__(self):<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window = gtk.Window(gtk.WINDOW_POPUP)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.set_title(&quot;xyShutdown&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.set_position(gtk.WIN_POS_CENTER)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.set_modal(True)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.set_icon_name(&quot;gtk-quit&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.set_resizable(False)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.set_decorated(True)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.set_keep_above(True)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.connect(&quot;destroy&quot;, self.destroy)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.connect(&quot;delete_event&quot;, self.delete_event)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;self.boxv = gtk.VBox(False, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.add(self.boxv)<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnShutdown = xyImageButton(&quot;关闭电脑&quot;, &quot;quit.xpm&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnShutdown.connect(&quot;clicked&quot;, self.shutdown, None)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.boxv.pack_start(self.btnShutdown, True, True, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnReboot = xyImageButton(&quot;重启电脑&quot;, &quot;restart.xpm&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnReboot.connect(&quot;clicked&quot;, self.reboot, None)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.boxv.pack_start(self.btnReboot, True, True, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnRestart = xyImageButton(&quot;退出登录&quot;, &quot;restart.xpm&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnRestart.connect(&quot;clicked&quot;, self.restart, None)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.boxv.pack_start(self.btnRestart, True, True, 0)<br/><br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnCancel = xyImageButton(&quot;取消操作&quot;, &quot;exit.xpm&quot;)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnCancel.connect(&quot;clicked&quot;, self.exit, None)<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.boxv.pack_start(self.btnCancel, True, True, 0)<br/><br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnCancel.show()<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnRestart.show()<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnReboot.show()<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.btnShutdown.show()<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.boxv.show()<br/>&nbsp;&nbsp;&nbsp;&nbsp;self.window.show() <br/><br/>&nbsp;&nbsp;def main(self):<br/>&nbsp;&nbsp;&nbsp;&nbsp;gtk.main()<br/><br/><br/>class xyImageButton(gtk.Button):<br/>&nbsp;&nbsp;def __init__(self, text, image):<br/>&nbsp;&nbsp;&nbsp;&nbsp;gtk.Button.__init__(self)<br/>&nbsp;&nbsp;&nbsp;&nbsp;hbox = gtk.HBox(False, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;img = gtk.Image()<br/>&nbsp;&nbsp;&nbsp;&nbsp;img.set_from_file(image)<br/>&nbsp;&nbsp;&nbsp;&nbsp;img.show()<br/>&nbsp;&nbsp;&nbsp;&nbsp;hbox.pack_start(img, True, True, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;lbl = gtk.Label(text)<br/>&nbsp;&nbsp;&nbsp;&nbsp;lbl.show()<br/>&nbsp;&nbsp;&nbsp;&nbsp;hbox.pack_start(lbl, True, True, 0)<br/>&nbsp;&nbsp;&nbsp;&nbsp;hbox.show()&nbsp;&nbsp; <br/>&nbsp;&nbsp;&nbsp;&nbsp;self.add(hbox)<br/>&nbsp;&nbsp; <br/>baseWindow = BaseWindow()<br/>baseWindow.main()</div><br/><br/>来源：http://www.cnblogs.com/mikespook/archive/2005/11/17/278371.html
]]>
</description>
</item><item>
<link>http://www.jackxiang.com/post//#blogcomment</link>
<title><![CDATA[[评论] 一个Python-GTK的程序,用来关机,重启 ]]></title> 
<author> &lt;user@domain.com&gt;</author>
<category><![CDATA[评论]]></category>
<pubDate>Thu, 01 Jan 1970 00:00:00 +0000</pubDate> 
<guid>http://www.jackxiang.com/post//#blogcomment</guid> 
<description>
<![CDATA[ 
	
]]>
</description>
</item>
</channel>
</rss>