一个Python-GTK的程序,用来关机,重启
2005-11-17 10:11
483 查看
需要备忘一下的是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
还可以用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
相关文章推荐
- 一个用来处理手机通讯录乱码的小小小小python程序
- NLTK:一个先进的用来处理自然语言数据的Python程序
- python实现的重启关机程序实例
- python实现的重启关机程序实例
- 用Python实现一个简单的能够发送带附件的邮件程序的教程
- 一个简单的程序,统计文本文档中的单词和汉字数,逆序排列(出现频率高的排在最前面)。python实现。
- 如何用python编写一个绘制马赛克图像的自写程序mask = np.zeros
- python 9-1 如何使用函数装饰器,定义函数装饰器,用来生成一个原函数基础添加新功能的函数,替代原函数
- 一个用来给文件列表添加绝对路径的程序
- 一个超级简单的python web程序
- 用python实现一个socket echo程序 && tcp socket的几个关闭状态
- python中初始化一个数组用来存储多张图片
- Python 练习册,每天一个小程序 -- 0000题
- python3.2 一个简单的socket 程序
- 一个可以快速关机和快速锁定并关闭显示的小程序
- 创建一个程序读入和显示视频文件,并可以使用滑动条控制视频文件的播放。一个滑动条用来控制视频播放位置,以10为步长跳进。另一个滑动条用来控制停止/播放
- python写的一个时钟程序(指针类的)
- Python 练习册,每天一个小程序(0005)
- Python如何编写一个带命令行参数的程序
- python 批量ping一个网段 返回结果 的程序