python-圖形化界面編程(一個啟動停止服務的界面)
阿新 • • 發佈:2017-11-19
python-圖形化界面編程(一個啟動停止服務的界面) 192.168.5.129,且httpd服務沒啟動:
GUI編程
1. Python實現GUI的方法
1)使用python的標準庫 Tkinter
2)使用wxPython
3)使用Jython(可以和 Java無縫集成)
2. 使用Tkinter
安裝tkinter庫
yum install -y tkinter tk-devel
創建1個空白的主窗口
#!/usr/bin/python # -*- coding: UTF-8 -*- import Tkinter # 創建一個主窗口 myWindow = Tkinter.Tk() # 進入消息循環 myWindow.mainloop()
寫一個服務啟動的圖形界面:
[root@cml10 python]# cat win2.py #!/usr/bin/python #_*_coding:utf-8_*_ import os from Tkinter import * # 導入 Tkinter 庫 def restart_server(): ip= listbox1.get(listbox1.curselection()) server= listbox2.get(listbox2.curselection()) os.system("sshpass-p ‘redhat‘ ssh root@%s service %s restart" %(ip,server)) print"sshpass -p ‘redhat‘ ssh root@%s service %s restart" %(ip,server) label_info["text"]="服務器(%s)正在重啟%s服務..."%(ip,server) mywin.update() def start_server(): ip= listbox1.get(listbox1.curselection()) server= listbox2.get(listbox2.curselection()) os.system("sshpass-p ‘redhat‘ ssh root@%s service %s start" %(ip,server)) print"sshpass -p ‘redhat‘ ssh root@%s service %s start" %(ip,server) label_info["text"]="武器器(%s)正在啟動%s服務..."%(ip,server) mywin.update() def stop_server(): ip = listbox1.get(listbox1.curselection()) server = listbox2.get(listbox2.curselection()) os.system("sshpass -p ‘redhat‘ ssh root@%s service %s stop"%(ip,server)) print "sshpass -p ‘redhat‘ ssh root@%s service %s stop"%(ip,server) label_info["text"]="武器器(%s)正在停止%s服務..."%(ip,server) mywin.update() mywin = Tk() # 創建窗口對象的背景色 mywin.title("server manager") mywin.geometry("700x400") #創建標簽 label1 = Label(mywin,text="服務器列表",font=("Arial",20),bg=‘yellow‘,fg=‘red‘) label1.grid(row=0,column=0) label2 = Label(mywin,text="服務名稱",font=("Arial",20),bg=‘blue‘,fg=‘red‘) label2.grid(row=0,column=1) label3 = Label(mywin,text="操作",font=("Arial",20),bg="blue",fg="red") label3.grid(row=0,column=2,columnspan=4) label_info =Label(mywin,text="",font=("Arial",20),bg=‘purple‘,fg=‘red‘) label_info.grid(row=2,column=0) #創建列表組件 listbox1 =Listbox(mywin,exportselection=False) listbox2 =Listbox(mywin,exportselection=False) #exportselection=False,是的選擇其他的Listbox時,原來的選擇依然有效 #創建按鈕 button1 = Button(mywin,text="重啟服務",command=restart_server) button2 = Button(mywin,text="啟動服務",command=start_server) button3 = Button(mywin,text="停止服務",command=stop_server) #給列表組件添加數據 ips = [] for ip in range(128,150): # 第一個小部件插入數據 tmp= "192.168.5.%d" %ip ips.append(tmp) for ip in ips: listbox1.insert(0,ip) services =["nginx","mariadb","ftp","network","httpd","mysql"] for service in services: listbox2.insert(0,service) # 第二個小部件插入數據 #給listbox布局 listbox1.grid(row=1,column=0,padx=20,pady=20,ipady=10) listbox2.grid(row=1,column=1,padx=20,pady=20) button1.grid(row=1,column=2,padx=10,pady=10) button2.grid(row=1,column=3,padx=10,pady=10) button3.grid(row=1,column=4,padx=10,pady=10) mywin.mainloop() # 進入消息循環
執行win2.py的效果圖:
[root@cml10 python]# python win2.py
測試直接點擊啟動、停止、重啟服務:
##centos-1主機地址為
[root@centos-1 ~]# service httpd status
httpd 已停
在圖形界面點擊192.168.5.129àhttpdà啟動服務
在centos-1機器上查看httpd的狀態:
[root@centos-1 ~]# service httpd status
httpd (pid 5206) 正在運行...
在點擊停止服務:
查看centos-1主機httpd狀態:
[root@centos-1 ~]# service httpd status
httpd 已停
點擊重啟:
查看centos-1主機httpd狀態:
[root@centos-1 ~]# service httpd status
httpd (pid 5635) 正在運行...
本文出自 “第一個legehappy51cto博客” 博客,請務必保留此出處http://legehappy.blog.51cto.com/13251607/1983279
python-圖形化界面編程(一個啟動停止服務的界面)