Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme avec pygtk

programmation evenementielle, gros soucis

Sujet résolu
    6 septembre 2014 à 0:08:14

    salut à suis newbie avc pygtk et je suis suis entrain de realiser un projet academique(scanneur de port) j ai realiser cet interface

    img1

    et j aimerai kan on clic sur scanner que l on obtienne simultatement ceci (le travail en back end a deja ete realisé)

    desiré

    donc un deuxime notebook imbroqué dans le premier , le soucis c que je blok sur  l integration du "sous notebook " juste apres avoir cliké sur 'scanner'

    voici les codes . la classe principale

    import gtk
    from threading import Thread
    import sys 
    import os 
    import time
    from Notebook import notebook
    from Notebook import notebookip
    
    
    
    
    
    class principal():
    
    	
    	def __init__(self):
    		self.vbox  = gtk.VBox(False,0)
                    		
           		
    		self.acceuil = gtk.Window()
    
    		
    		self.acceuil.set_title("clauzan pentesting")
    		self.acceuil.maximize()
    		self.menu() 
    
    
    		self.acceuil.add(self.vbox)
    		
    		note = notebook(self)
    		
    
    		self.acceuil.connect('delete_event',self.quitter)
                    self.acceuil.show_all()
    		
    
    
    
    	def menu(self):
    
    		menu = gtk.MenuBar()
    
    		itemenu = gtk.Menu()
    
    		nomitem = gtk.MenuItem("aide")
    
    		nomitem.set_submenu(itemenu)
    
    
    		itemenu1 = gtk.Menu()
    
    		nomitem1 = gtk.MenuItem("outils")
    
    		nomitem1.set_submenu(itemenu1)
    
    
    		
    		exit = gtk.MenuItem("apropos")
    		exit.connect("activate",self.apropos)
    	        aide = gtk.MenuItem("sommaire")
    		manuel = gtk.MenuItem("manuel utilisateur")
    
    
    		crackeur = gtk.MenuItem("crackeur")
    		
    	        snifeur = gtk.MenuItem("snifeur")
    		rogue = gtk.MenuItem("rogueAP")
    
    
    		
                      
    		itemenu.append(aide)
    		itemenu.append(manuel)
    		itemenu.append(exit)
    
    		itemenu1.append(crackeur)
    		itemenu1.append(snifeur)
    		itemenu1.append(rogue)
    
    		menu.append(nomitem1)
    		menu.append(nomitem)
    		
    		
    
    		self.vbox.pack_start(menu,False,False,0)
    		menu.show_all()
    
    
    	
    	def change_liste(self, combo):
    		tree_iter = combo.get_active_iter()
    
    		if tree_iter != None:
    			model = combo.get_model()
    			type = model[tree_iter][0]
    			print("Selected: type=%s" % type)
    
    
    	
    		
    	def bouton_scan(self, widget):
    		
    		
    		
    
    		
    		
    		
    		
    
    		renvoi = self.scan_combo.get_active_text()
    		if renvoi == "scan UDP" :
    			type = "-sU"
    		elif renvoi == "scan par ping" :
    			type = "-sP"
    		elif renvoi == "scan+vul" :
    			type = "-A"
    		else :
    			type = ""
    		
    		ip = self.entre1.get_text()
    		os.system("xterm -e nmap  %s -oX scan.xml %s " % (type,ip))
    	        a = "dd"	
    		
    
    
    			
    
    
    
    	def apropos(self,widget):
    		img = gtk.gdk.pixbuf_new_from_file("clauzanpentest.png")
    		boite  = gtk.AboutDialog()
    		boite.set_icon_from_file("clauzanpentest.png")
    		boite.set_name("clauzan Pentesting")
    		boite.set_version("1.0")
    		boite.set_copyright("copyright 2014, tous droits reserves")
    		boite.set_comments(boite.get_name() + " " +
    		boite.get_version() +" est un logiciel de pentesting " )
    		boite.set_license("copyright 2014 \n ce programme est un logiciel libre;\n vous pouvez le redistribuer et le modifier selon les termes dela licence\n GNU General Public License publie par le Free software Foundation version 2 \n de cette license")
    		auteur = ["EMBANOHO MANENG SINCLAIR ERC\n sinclaireric60@yahoo.fr\n+23776013924"]
    		boite.set_authors(auteur)
    		boite.set_logo(img)
    		reponse = boite.run()
    		boite.destroy()
    
    
    
    	
    
    	def quitter(self,widget,event,data=None):
    		
    		msg=("voullez vous vraiment quitter?")
    		dlg = gtk.MessageDialog(None,gtk.DIALOG_MODAL,gtk.MESSAGE_QUESTION,gtk.BUTTONS_YES_NO,msg)
    		lancer = dlg.run()
    		dlg.destroy()
    
    		if lancer != gtk.RESPONSE_YES:
    			return true
    		if lancer == gtk.RESPONSE_YES:
    			gtk.main_quit() 
    
    if __name__=='__main__':
    	w=gtk_iteration()
    



     et enfn le code des notebook

    import gtk
    from xml.dom import minidom
    import time
    
    
    
    def notebook(self):
    
    		#table principale et boite verticale
    		table = gtk.Table(3,6,False)
    		self.vbox.pack_start(table,False,False,0)
    
    		
    		#notebook principal
    		 
    	
    		notebook = gtk.Notebook()
    		notebook.set_tab_pos(gtk.POS_TOP)
    		table.attach(notebook,0,6,0,1)
    		notebook.show()
    		
    		self.hbox = gtk.VBox()
    		
    		#table des entrees
    		scangui = gtk.Table(2,10,True)
    		self.entre1 = gtk.Entry()
    
    		liste_scan = gtk.ListStore(str)
    		type_scan = ["scan normal", "scan UDP", "scan par ping", "scan+vul"]
    		for type in type_scan:
    			liste_scan.append([type])
    
    		self.scan_combo = gtk.ComboBox(liste_scan)
    		self.scan_combo.connect("changed", self.change_liste)
    
    		renderer_text = gtk.CellRendererText()
    		self.scan_combo.pack_start(renderer_text, True)
    		self.scan_combo.add_attribute(renderer_text, "text", 0)
    
    		text1 = gtk.Label("adresse ip")
    		text2 = gtk.Label("type de scan")
    
    		scangui.attach(text1,1,2,1,2)
    		scangui.attach(text2,4,5,1,2)
    		scangui.set_col_spacings(10)
    		self.scan = gtk.Button("scanner")
    
    		self.scan.connect('clicked', self.bouton_scan)
    		
    
    		scangui.attach(self.entre1,2,4,1,2)
    		scangui.attach(self.scan_combo,5,8,1,2)
    
    		scangui.attach(self.scan,8,9,1,2)
    		bouton3 = gtk.Button("voirvfd2")
    		
    
    		#sous notebook dans scanneur
    		
    
    		self.hbox.pack_start(scangui,False,False,0)
    		nom = "module scanneur"
    		label1 = gtk.Label(nom)
    
    
    		bouton1 = gtk.Button("voir2")
    		bouton1.show()
                    nom1 = "module sniffeur"
    		label3 = gtk.Label(nom1)
    
    		
    
    		
    
    		
    		label4 = gtk.Label(nom1)
    
    
    
    		bouton = gtk.Button("voir")
    		bouton.show()
                    nom1 = "wireless"
    
    
    		label2 = gtk.Label(nom1)
    
    	
    		
    
    		notebook.append_page(self.hbox,label1)
    		notebook.append_page(bouton1,label3)
                    notebook.append_page(bouton,label2)
    		
    		while gtk.events_pending():
    			
    			gtk.main_iteration()
    		don = notebookip(self)
    
    
    
    		
    
    		notebook.set_current_page(0)
    
    def notebookip(self):
    
    		fichier = minidom.parse("scan.xml")
    		entete = fichier.documentElement
    		ips = entete.getElementsByTagName("address")
    		tableauip = []
    
    		for ip in ips:
    			tableauip.append(ip.getAttribute("addr"))
    		try:
    			print tableauip[0]
    		except:	
    			pass
    	
    		table1 = gtk.Table(3,6,False)
    		notebook1 = gtk.Notebook()
    		notebook1.set_tab_pos(gtk.POS_LEFT)
    		table1.attach(notebook1,0,6,0,1)
    		notebook1.show()
    	
    
    	        hote = gtk.HBox(spacing=20)
    		image = gtk.Image()
    		image.set_from_file('core/gui/image/hote.png')
    			
    		nom_hote = gtk.Label()
    		nom_hote.set_markup("<span font-family=\"courrier\" ><b>LINUX UBUNTU</b></span>")
    			
    		ports = gtk.Label()
    		ports.set_markup("<span font-family=\"courrier\" ><b>25 \n 23</b></span>")
    			
    	
    	
    		hote.pack_start(image,False,False,0)
    		hote.pack_start(nom_hote,False,False,0)
    	        hote.pack_start(ports,False,False,0)         	
    	
    		try:
    			nom1 = tableauip[0]
    		except:
    			nom1 = "hfgh"
    		label5 = gtk.Label(nom1)
    		notebook1.append_page(hote,label5)
    		self.hbox.pack_start(table1,False,False,0)
    
    
    
    
    

    please c urgent!!!  question de vie ou de mort :ange: meric

    -
    Edité par Sinclair Eric 6 septembre 2014 à 0:39:39

    • Partager sur Facebook
    • Partager sur Twitter
    collll

    probleme avec pygtk

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown