예제 #1
0
파일: GCS.py 프로젝트: zxzang/flcs
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_GCS()
        self.ui.setupUi(self)
        
        #self.ui.window_CYK.addTab(self.genTabCYK())
        self.ui.window_grammar.setText(self.G.getGramarStr())
	
        #ustawianie polaczen:
	
	#wystartowanie algorytmu:
        QtCore.QObject.connect(self.ui.start_GLBS, QtCore.SIGNAL("clicked()"),self.genTabCYK)
	
	#otwieranie pliku
        QtCore.QObject.connect(self.ui.menuOpcje, QtCore.SIGNAL("clicked()"),self.openFile)
	
	#puusty przycis narazie
        #QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.changeWord) 
	
	#otwieranie pliku:
	QtCore.QObject.connect(self.ui.open_file, QtCore.SIGNAL("clicked()"),self.openFile)
	
	#nastepny krok
	QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)
	
	#popranie danych z formularza zmiennych, jeszcze sa tam jakies braki!!
	QtCore.QObject.connect(self.ui.propertiesAccept,QtCore.SIGNAL("clicked()"),self.getProperties)
	
	#anulowanie wprowadzanych preferenci
	QtCore.QObject.connect(self.ui.propertiesCancel,QtCore.SIGNAL("clicked()"),self.cancelProperties)
	#QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)
	self.cancelProperties()
예제 #2
0
파일: GCS_new.py 프로젝트: zxzang/flcs
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
    	self.dialogTasks = tasks_generator(self)
        self.ui = Ui_GCS()
    	self.parametry = properties()
    	self.testingWords = []
        self.ui.setupUi(self)
    	self.FLCS = funnction_FLSC(self)
    	#definiuje obiekt obsługujący popUp'y:
    	self.popUp = popUp(self)
    	self.genetyk = genetyk(self.FLCS.getGrammar(),self.parametry)
    	self.fileIndex = 0
        #self.ui.window_CYK.addTab(self.genTabCYK())

        #print "tutaj gramtyka na okno idzie:"
        self.ui.window_grammar.setText(self.FLCS.getGrammar().getGramarStr())

        #dodawanie dotatkowych combosow w oknie:
        self.addMembershipFunctionBox()
        self.addFuzzyFunctionBox()
        #ustawianie polaczen:

    	#wystartowanie algorytmu:
        QtCore.QObject.connect(self.ui.start_GLBS, QtCore.SIGNAL("clicked()"),self.genTabCYK)

    	#otwieranie pliku
        QtCore.QObject.connect(self.ui.menuOpcje, QtCore.SIGNAL("clicked()"),self.openFile)


    	#przycisk do testow (nastepny krok)
        QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.testy)

    	#nastepny krok
    	#QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)

    	#pobranie danych z formularza zmiennych
    	QtCore.QObject.connect(self.ui.propertiesAccept,QtCore.SIGNAL("clicked()"),self.getProperties)

    	#generowanie zdan uczacych button:
    	QtCore.QObject.connect(self.ui.create_test,QtCore.SIGNAL("clicked()"),self.generate_tasks)

    	#anulowanie wprowadzanych preferenci
    	QtCore.QObject.connect(self.ui.propertiesCancel,QtCore.SIGNAL("clicked()"),self.cancelProperties)
    	#QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)
    	self.cancelProperties()
    	self.getProperties()

    	#otwieranie pliku:
    	QtCore.QObject.connect(self.ui.open_file, QtCore.SIGNAL("clicked()"),self.openFile)
예제 #3
0
파일: GCS_new.py 프로젝트: zxzang/flcs
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
	self.dialogTasks = tasks_generator(self)
        self.ui = Ui_GCS()
	self.parametry = properties()
	self.testingWords = []
        self.ui.setupUi(self)
        self.G = gramatyka()
	self.genetyk = genetyk(self.G,self.parametry)
	self.fileIndex = 0
        #self.ui.window_CYK.addTab(self.genTabCYK())
	print "tutaj gramtyka na okno idzie:"
        self.ui.window_grammar.setText(self.G.getGramarStr())
	
        #ustawianie polaczen:
	
	#wystartowanie algorytmu:
        QtCore.QObject.connect(self.ui.start_GLBS, QtCore.SIGNAL("clicked()"),self.genTabCYK)
	
	#otwieranie pliku
        QtCore.QObject.connect(self.ui.menuOpcje, QtCore.SIGNAL("clicked()"),self.openFile)
	
	#puusty przycis narazie
        #QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.changeWord) 
	
	#otwieranie pliku:
	QtCore.QObject.connect(self.ui.open_file, QtCore.SIGNAL("clicked()"),self.openFile)
	
	#nastepny krok
	QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)
	
	#popranie danych z formularza zmiennych, jeszcze sa tam jakies braki!!
	QtCore.QObject.connect(self.ui.propertiesAccept,QtCore.SIGNAL("clicked()"),self.getProperties)
	
	#generowanie zdan uczacych button:
	QtCore.QObject.connect(self.ui.create_test,QtCore.SIGNAL("clicked()"),self.generate_tasks)
	
	#anulowanie wprowadzanych preferenci
	QtCore.QObject.connect(self.ui.propertiesCancel,QtCore.SIGNAL("clicked()"),self.cancelProperties)
	#QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)
	self.cancelProperties()
예제 #4
0
파일: GCS_new.py 프로젝트: zxzang/flcs
class MyForm(QtGui.QMainWindow):
    #definicja zmiennych :
    word = "1aabb"


    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
    	self.dialogTasks = tasks_generator(self)
        self.ui = Ui_GCS()
    	self.parametry = properties()
    	self.testingWords = []
        self.ui.setupUi(self)
    	self.FLCS = funnction_FLSC(self)
    	#definiuje obiekt obsługujący popUp'y:
    	self.popUp = popUp(self)
    	self.genetyk = genetyk(self.FLCS.getGrammar(),self.parametry)
    	self.fileIndex = 0
        #self.ui.window_CYK.addTab(self.genTabCYK())

        #print "tutaj gramtyka na okno idzie:"
        self.ui.window_grammar.setText(self.FLCS.getGrammar().getGramarStr())

        #dodawanie dotatkowych combosow w oknie:
        self.addMembershipFunctionBox()
        self.addFuzzyFunctionBox()
        #ustawianie polaczen:

    	#wystartowanie algorytmu:
        QtCore.QObject.connect(self.ui.start_GLBS, QtCore.SIGNAL("clicked()"),self.genTabCYK)

    	#otwieranie pliku
        QtCore.QObject.connect(self.ui.menuOpcje, QtCore.SIGNAL("clicked()"),self.openFile)


    	#przycisk do testow (nastepny krok)
        QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.testy)

    	#nastepny krok
    	#QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)

    	#pobranie danych z formularza zmiennych
    	QtCore.QObject.connect(self.ui.propertiesAccept,QtCore.SIGNAL("clicked()"),self.getProperties)

    	#generowanie zdan uczacych button:
    	QtCore.QObject.connect(self.ui.create_test,QtCore.SIGNAL("clicked()"),self.generate_tasks)

    	#anulowanie wprowadzanych preferenci
    	QtCore.QObject.connect(self.ui.propertiesCancel,QtCore.SIGNAL("clicked()"),self.cancelProperties)
    	#QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)
    	self.cancelProperties()
    	self.getProperties()

    	#otwieranie pliku:
    	QtCore.QObject.connect(self.ui.open_file, QtCore.SIGNAL("clicked()"),self.openFile)

    def checkData(self):
    	'''funkcja bedzie sprwdzac czy dane  do testow zostaly wczytane'''
    	if len(self.testingWords) < 5:
    	    return 0
    	else:
    	    return 1



    def genTabCYK(self):
    	''' metoda bedzie odpowiadac za petle główna porgramu'''
    	print "w GCS ie"
    	if self.checkData():
    	    self.ui.progressBar.setValue(0)
    	    #odświerzenie widoku gramatyki:
    	    self.FLCS.setFunction("parseKit")
    	    self.FLCS.start()
    	    QtCore.QObject.connect(self.FLCS,QtCore.SIGNAL("textOnConsole(PyQt_PyObject)"), self.textOnConsole)
    	    QtCore.QObject.connect(self.FLCS,QtCore.SIGNAL("progresBarUpdate(PyQt_PyObject)"), self.progresBarUpdate)
    	    QtCore.QObject.connect(self.FLCS,QtCore.SIGNAL("finished()"), self.po_wykonaniu_watku)
    	else:
    	    print "dane testowe nie prawidlowe"
    	    self.popUp.setText("Dane nie zostały wczytane")
    	    self.popUp.show()


    def progresBarUpdate(self, progess):
    	self.ui.progressBar.setValue(progess)

    def textOnConsole(self, napis):
    	''' wyświetla przekazany text na konsole glowna aplikacji'''
    	self.ui.window_cyk.setText(napis)

    def  po_wykonaniu_watku(self):
    	print "selekcja ruletkowa:"
    	self.genetyk.makeGen()
    	self.ui.window_grammar.setText(self.FLCS.getGrammar().getGramarStr())
    	print "koniec done!"

    def readLine(self):
    	if self.fileIndex == len(self.testingWords) -1:
    	    self.fileIndex = 0
    	    self.FLCS.getGrammar().countFitness()
            self.fileIndex += 1
    	x=self.fileIndex

    	self.word = self.testingWords[self.fileIndex]
        self.ui.window_cyk.setText(self.testingWords[self.fileIndex])
    	result = self.FLCS.getGrammar().CYK(self.testingWords[self.fileIndex])

    	if result is int:
    	    return 0
    	self.FLCS.getGrammar().countProfit(result,len(self.testingWords[x])-1,self.testingWords[x][0])
    	self.ui.window_grammar.setText(self.FLCS.getGrammar().getGramarStr())



    def showDict(self):
        self.ui.okno_gl.setText(str(self.FLCS.getGrammar().G))

    def changeWord(self):
	       pass

    def openFile(self):
    	''' metoda otwiera wskazany plik, i wyswietla'''
    	print "jezdem"
    	tmp = ''
        fd = QtGui.QFileDialog(self)
    	self.filename = fd.getOpenFileName()
    	from os.path import isfile
    	if isfile(self.filename):
    	    for x in open(self.filename):
    		          self.testingWords.append(x[:len(x)-1])

    	self.editFile()
    	self.FLCS.setTestingWords(self.testingWords)
    	for x in self.testingWords:
    	    tmp+=x + "\n" #+" len: " + str(len(x)) + "\n"
    	self.ui.window_file.setText(tmp)


    def editFile(self):
    	for x in range(0,len(self.testingWords)):
    	    #tmp = self.testingWords[x][0]
    	    self.testingWords[x] = self.testingWords[x][0]+self.testingWords[x][self.testingWords[x][2:].find(" ")+3:]
    	    #usuwanie spacji:
    	    while self.testingWords[x].find(" ") > 0:
    		k = self.testingWords[x].find(" ")
    		self.testingWords[x]=self.testingWords[x][:k]+self.testingWords[x][k+1:]
    	    self.testingWords[x]=self.testingWords[x].rstrip()

    def getProperties(self):
    	'''metoda ma za zadanie zczytywanie zmiennych, ale nie wiem jak z qwidegta pobrac dane'''
    	self.FLCS.getParams().ba = self.ui.ba.value()
    	self.FLCS.getParams().cf = self.ui.cf.value()
    	self.FLCS.getParams().cs = self.ui.cs.value()
    	self.FLCS.getParams().nelit = self.ui.nelit.value()
    	self.FLCS.getParams().nmax = self.ui.nmax.value()
    	self.FLCS.getParams().nN = self.ui.nN.value()
    	self.FLCS.getParams().np = self.ui.np.value()
    	self.FLCS.getParams().nrun = self.ui.nrun.value()
    	self.FLCS.getParams().nstart = self.ui.nstart.value()
    	self.FLCS.getParams().nT = self.ui.nT.value()
    	self.FLCS.getParams().Pa = self.ui.Pa.value()
    	self.FLCS.getParams().Pi = self.ui.Pi.value()
    	self.FLCS.getParams().Pk= self.ui.Pk.value()
    	self.FLCS.getParams().Pm= self.ui.Pm.value()
    	self.FLCS.getParams().raf= self.ui.raf.value()
    	self.FLCS.getParams().ts= self.ui.ts.value()
    	self.FLCS.getParams().wc= self.ui.wc.value()
    	self.FLCS.getParams().wf= self.ui.wf.value()
    	self.FLCS.getParams().wn= self.ui.wn.value()
    	self.FLCS.getParams().wp= self.ui.wp.value()
    	self.FLCS.getParams().f0= self.ui.f0.value()

    	#pobieranie danych do rozmycia
    	self.FLCS.getGrammar().parametry.fuzzyUnion = str(self.ui.comboBoxUnion.currentText())
    	self.FLCS.getGrammar().parametry.memebershipFunction = str(self.ui.comboBoxMembership.currentText())
    	#tutaj tak durnie sie nazywa bo tak moze kiedys zmienie
    	self.FLCS.getGrammar().parametry.generalization = self.ui.comboBoxUnion_2.currentText()
    	print self.FLCS.getGrammar().parametry.__dict__
    	print str(self.FLCS.getGrammar().parametry.__dict__['generalization']) == 'kwadrat'
    	print str(self.FLCS.getGrammar().parametry.__dict__['memebershipFunction']) == 'Type S'
    	#self.genetyk.updateProperies(self.FLCS.progressgetGrammar().parametry)
    	#self.ui.okno_gl.setText(str(self.ui.ba))
    	#self.ui.window_cyk.setText(str(self.parametry.ba))


    def cancelProperties(self):
    	'''metoda ma za zadanie przywrocenie starych danych do formularza w przypadku wcisniecia "anuluj"'''
    	self.ui.ba.setValue(self.FLCS.getParams().ba)
    	self.ui.cf.setValue(self.FLCS.getParams().cf)
    	self.ui.cs.setValue(self.FLCS.getParams().cs)
    	self.ui.nelit.setValue(self.FLCS.getParams().nelit)
    	self.ui.nmax.setValue(self.FLCS.getParams().nmax)
    	self.ui.nN.setValue(self.FLCS.getParams().nN)
    	self.ui.np.setValue(self.FLCS.getParams().np)
    	self.ui.nrun.setValue(self.FLCS.getParams().nrun)
    	self.ui.nstart.setValue(self.FLCS.getParams().nstart)
    	self.ui.nT.setValue(self.FLCS.getParams().nT)
    	self.ui.Pa.setValue(self.FLCS.getParams().Pa)
    	self.ui.Pi.setValue(self.FLCS.getParams().Pi)
    	self.ui.Pk.setValue(self.FLCS.getParams().Pk)
    	self.ui.Pm.setValue(self.FLCS.getParams().Pm)
    	self.ui.raf.setValue(self.FLCS.getParams().raf)
    	self.ui.ts.setValue(self.FLCS.getParams().ts)
    	self.ui.wc.setValue(self.FLCS.getParams().wc)
    	self.ui.wf.setValue(self.FLCS.getParams().wf)
    	self.ui.wn.setValue(self.FLCS.getParams().wn)
    	self.ui.wp.setValue(self.FLCS.getParams().wp)
    	self.ui.f0.setValue(self.FLCS.getParams().f0)

    def generate_tasks(self):
        print "a se kliklem se"
        self.dialogTasks.show()

    def testy(self):
    	self.FLCS.setFunction("test")
    	self.FLCS.start()

    def getFileName(self):
    	return self.filename

    def getParams(self):
    	return self.FLCS.getGrammar().parametry

    def getGrammar(self):
    	return self.FLCS.getGrammar()

    def addMembershipFunctionBox(self):
    	''' funkcja bedzie dodawac dodatkowe nazwy funckji przynaleznosci do wyboru'''
    	#self.ui.comboBoxMembership.addItem(QtCore.QString("sraka"))
        pass

    def addFuzzyFunctionBox(self):
        ''' funkcja bedzie dodawac dodatkowe nazwy operacji rozmytych do wyboru'''
        self.ui.comboBoxUnion.addItem(QtCore.QString("Zedeh"))
        self.ui.comboBoxUnion.addItem(QtCore.QString("Yager"))
        self.ui.comboBoxUnion.addItem(QtCore.QString("Dubois"))
        self.ui.comboBoxUnion.addItem(QtCore.QString("Hamacher"))
        self.ui.comboBoxUnion.addItem(QtCore.QString("Dombi"))
예제 #5
0
파일: GCS_new.py 프로젝트: zxzang/flcs
class MyForm(QtGui.QMainWindow):
    #definicja zmiennych :
    word = "1aabb"
    
   
    #G.setProperties(parametry)
    
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
	self.dialogTasks = tasks_generator(self)
        self.ui = Ui_GCS()
	self.parametry = properties()
	self.testingWords = []
        self.ui.setupUi(self)
        self.G = gramatyka()
	self.genetyk = genetyk(self.G,self.parametry)
	self.fileIndex = 0
        #self.ui.window_CYK.addTab(self.genTabCYK())
	print "tutaj gramtyka na okno idzie:"
        self.ui.window_grammar.setText(self.G.getGramarStr())
	
        #ustawianie polaczen:
	
	#wystartowanie algorytmu:
        QtCore.QObject.connect(self.ui.start_GLBS, QtCore.SIGNAL("clicked()"),self.genTabCYK)
	
	#otwieranie pliku
        QtCore.QObject.connect(self.ui.menuOpcje, QtCore.SIGNAL("clicked()"),self.openFile)
	
	#puusty przycis narazie
        #QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.changeWord) 
	
	#otwieranie pliku:
	QtCore.QObject.connect(self.ui.open_file, QtCore.SIGNAL("clicked()"),self.openFile)
	
	#nastepny krok
	QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)
	
	#popranie danych z formularza zmiennych, jeszcze sa tam jakies braki!!
	QtCore.QObject.connect(self.ui.propertiesAccept,QtCore.SIGNAL("clicked()"),self.getProperties)
	
	#generowanie zdan uczacych button:
	QtCore.QObject.connect(self.ui.create_test,QtCore.SIGNAL("clicked()"),self.generate_tasks)
	
	#anulowanie wprowadzanych preferenci
	QtCore.QObject.connect(self.ui.propertiesCancel,QtCore.SIGNAL("clicked()"),self.cancelProperties)
	#QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)
	self.cancelProperties()
    
    def genTabCYK(self): 
	''' metoda bedzie odpowiadac za petle główna porgramu'''
	print "w GCS ie"
	#odświerzenie widoku gramatyki:
	self.parsKit()
	print "selekcja ruletkowa:"
	self.genetyk.makeGen()
	self.ui.window_grammar.setText(self.G.getGramarStr())
	print "koniec done!"
	
    
    def readLine(self):
	if self.fileIndex == len(self.testingWords) -1:
	    self.fileIndex = 0
	    self.G.countFitness()
        self.fileIndex += 1
	x=self.fileIndex
	
	self.word = self.testingWords[self.fileIndex]
        self.ui.window_cyk.setText(self.testingWords[self.fileIndex])
	result = self.G.CYK(self.testingWords[self.fileIndex])
	
	if result is int:
	    return 0
	self.G.countProfit(result,len(self.testingWords[x])-1,self.testingWords[x][0])
	self.ui.window_grammar.setText(self.G.getGramarStr())

    def parsKit(self):
	'''metoda bedzie parsowac jeden zestaw uczący'''
	#robimy kopie zapasową gramatyki:
	good = 0
	bad = 0
	poprawnie = 0
	nie = 0
	self.G.makeBackUp()
	self.G.allowCover = 1
	#parsowanie zdań:
	self.G.allowFulCover = 1
	x =1
	while 1:
	    print "liczymy dla:" + self.testingWords[x]
	    #tutaj robimy CYK
	    result = self.G.CYK(self.testingWords[x])
	    if result == -10:
		#przerwanie, reset z powodu zastosowania pokrycia:
		print "reset"
		x = 1
		good = 0
		bad = 0
		poprawnie = 0
		nie = 0
		continue
	    #jak się skończy to liczymy p i d jeszcze czyba u by trzeba bylo:
	    self.G.countProfit(result,len(self.testingWords[x])-2,self.testingWords[x][0])

	    if result == 1:
		good += 1
	    else:
		bad += 1
		
	    if result == int(self.testingWords[x][0]):
		poprawnie += 1
	    else:
		nie += 1
	    
	    x+=1
	    if x >= len(self.testingWords):
		break
	self.ui.window_cyk.setText("sparsowane %d, nie sparsowane %d, poprawnie %d nie poprawnie %d wspony"%(good,bad,poprawnie,nie))
	self.G.countFitness()
	return 0
	    
	
    def showDict(self):
        self.ui.okno_gl.setText(str(self.G.G)) 

    def changeWord(self):
	pass

    def openFile(self):
	''' metoda otwiera wskazany plik, i wyswietla'''
	
	tmp = ''
        fd = QtGui.QFileDialog(self)
	self.filename = fd.getOpenFileName()
	from os.path import isfile
	if isfile(self.filename):
	    for x in open(self.filename):
		self.testingWords.append(x[:len(x)-1])
		
	self.editFile()
	
	for x in self.testingWords:
	    tmp+=x + "\n" #+" len: " + str(len(x)) + "\n"
	self.ui.window_file.setText(tmp)
	
	
    def editFile(self):
	for x in range(0,len(self.testingWords)):
	    #tmp = self.testingWords[x][0]
	    self.testingWords[x] = self.testingWords[x][0]+self.testingWords[x][self.testingWords[x][2:].find(" ")+3:]
	    #usuwanie spacji:
	    while self.testingWords[x].find(" ") > 0:
		k = self.testingWords[x].find(" ")
		self.testingWords[x]=self.testingWords[x][:k]+self.testingWords[x][k+1:]
	    self.testingWords[x]=self.testingWords[x].rstrip()	
	    
    def getProperties(self):
	'''metoda ma za zadanie zczytywanie zmiennych, ale nie wiem jak z qwidegta pobrac dane'''
	self.G.parametry.ba = self.ui.ba.value()
	self.G.parametry.cf = self.ui.cf.value()
	self.G.parametry.cs = self.ui.cs.value()
	self.G.parametry.nelit = self.ui.nelit.value()
	self.G.parametry.nmax = self.ui.nmax.value()
	self.G.parametry.nN = self.ui.nN.value()
	self.G.parametry.np = self.ui.np.value()
	self.G.parametry.nrun = self.ui.nrun.value()
	self.G.parametry.nstart = self.ui.nstart.value()
	self.G.parametry.nT = self.ui.nT.value()
	self.G.parametry.Pa = self.ui.Pa.value()
	self.G.parametry.Pi = self.ui.Pi.value()
	self.G.parametry.Pk= self.ui.Pk.value()
	self.G.parametry.Pm= self.ui.Pm.value()
	self.G.parametry.raf= self.ui.raf.value()
	self.G.parametry.ts= self.ui.ts.value()
	self.G.parametry.wc= self.ui.wc.value()
	self.G.parametry.wf= self.ui.wf.value()
	self.G.parametry.wn= self.ui.wn.value()
	self.G.parametry.wp= self.ui.wp.value()
	self.G.parametry.f0= self.ui.f0.value()
	self.genetyk.updateProperies(self.G.parametry)
	#self.ui.okno_gl.setText(str(self.ui.ba))
	#self.ui.window_cyk.setText(str(self.parametry.ba))
	

    def cancelProperties(self):
	'''metoda ma za zadanie przywrocenie starych danych do formularza w przypadku wcisniecia "anuluj"'''
	self.ui.ba.setValue(self.G.parametry.ba)
	self.ui.cf.setValue(self.G.parametry.cf)
	self.ui.cs.setValue(self.G.parametry.cs)
	self.ui.nelit.setValue(self.G.parametry.nelit)
	self.ui.nmax.setValue(self.G.parametry.nmax)
	self.ui.nN.setValue(self.G.parametry.nN)
	self.ui.np.setValue(self.G.parametry.np)
	self.ui.nrun.setValue(self.G.parametry.nrun)
	self.ui.nstart.setValue(self.G.parametry.nstart)
	self.ui.nT.setValue(self.G.parametry.nT)
	self.ui.Pa.setValue(self.G.parametry.Pa)
	self.ui.Pi.setValue(self.G.parametry.Pi)
	self.ui.Pk.setValue(self.G.parametry.Pk)
	self.ui.Pm.setValue(self.G.parametry.Pm)
	self.ui.raf.setValue(self.G.parametry.raf)
	self.ui.ts.setValue(self.G.parametry.ts)
	self.ui.wc.setValue(self.G.parametry.wc)
	self.ui.wf.setValue(self.G.parametry.wf)
	self.ui.wn.setValue(self.G.parametry.wn)
	self.ui.wp.setValue(self.G.parametry.wp)
	self.ui.f0.setValue(self.G.parametry.f0)
	
    def generate_tasks(self):
	print "a se kliklem se"
	self.dialogTasks.show()
예제 #6
0
파일: GCS.py 프로젝트: zxzang/flcs
class MyForm(QtGui.QMainWindow):
    #definicja zmiennych :
    testingWords = []
    fileIndex = 0
    word = "aabb"
    G = gramatyka()
    parametry = properties()
    #G.setProperties(parametry)
    
    def __init__(self, parent=None):
        QtGui.QWidget.__init__(self, parent)
        self.ui = Ui_GCS()
        self.ui.setupUi(self)
        
        #self.ui.window_CYK.addTab(self.genTabCYK())
        self.ui.window_grammar.setText(self.G.getGramarStr())
	
        #ustawianie polaczen:
	
	#wystartowanie algorytmu:
        QtCore.QObject.connect(self.ui.start_GLBS, QtCore.SIGNAL("clicked()"),self.genTabCYK)
	
	#otwieranie pliku
        QtCore.QObject.connect(self.ui.menuOpcje, QtCore.SIGNAL("clicked()"),self.openFile)
	
	#puusty przycis narazie
        #QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.changeWord) 
	
	#otwieranie pliku:
	QtCore.QObject.connect(self.ui.open_file, QtCore.SIGNAL("clicked()"),self.openFile)
	
	#nastepny krok
	QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)
	
	#popranie danych z formularza zmiennych, jeszcze sa tam jakies braki!!
	QtCore.QObject.connect(self.ui.propertiesAccept,QtCore.SIGNAL("clicked()"),self.getProperties)
	
	#anulowanie wprowadzanych preferenci
	QtCore.QObject.connect(self.ui.propertiesCancel,QtCore.SIGNAL("clicked()"),self.cancelProperties)
	#QtCore.QObject.connect(self.ui.change_word,QtCore.SIGNAL("clicked()"),self.readLine)
	self.cancelProperties()
    
    def genTabCYK(self): 
	
	print "w GCS ie"
	print self.word
        table = self.G.CYK(str(self.word))  
	while table == 0:
	    table = self.G.CYK(str(self.word))

	if table == -10:
	    print "sdffffffffffffffffffffffff"
	    return -10
	tmp = ""
        for x in table:
            tmp += str(x)+"\n"
        self.ui.window_cyk.setText(tmp)
	self.ui.window_grammar.setText(self.G.getGramarStr())
    
    def readLine(self):
	if self.fileIndex == len(self.testingWords) -1:
	    self.fileIndex = 0  
        self.fileIndex += 1
	self.word = self.testingWords[self.fileIndex]
        self.ui.window_cyk.setText(self.testingWords[self.fileIndex])
	self.genTabCYK()
	
    def showDict(self):
        self.ui.okno_gl.setText(str(self.G.G)) 

    def changeWord(self):
	pass

    def openFile(self):
	''' metoda otwiera wskazany plik, i wyswietla'''
	#co dalej z tym tekstem dlaczego ich ....
	tmp = ''
        fd = QtGui.QFileDialog(self)
	self.filename = fd.getOpenFileName()
	from os.path import isfile
	if isfile(self.filename):
	    for x in open(self.filename):
		self.testingWords.append(x[:len(x)-1])
	self.editFile()
	for x in self.testingWords:
	    tmp+=x  #+" len: " + str(len(x)) + "\n"
	self.ui.window_file.setText(tmp)
	
	
    def editFile(self):
	for x in range(0,len(self.testingWords)):
	    #tmp = self.testingWords[x][0]
	    self.testingWords[x] =self.testingWords[x][0]+self.testingWords[x][self.testingWords[x][2:].find(" ")+3:]
	    while self.testingWords[x].find(" ") > 0:
		k = self.testingWords[x].find(" ")
		self.testingWords[x]=self.testingWords[x][:k]+self.testingWords[x][k+1:]
	
    def getProperties(self):
	'''metoda ma za zadanie zczytywanie zmiennych, ale nie wiem jak z qwidegta pobrac dane'''
	self.G.parametry.ba = self.ui.ba.value()
	self.G.parametry.cf = self.ui.cf.value()
	self.G.parametry.cs = self.ui.cs.value()
	self.G.parametry.nelit = self.ui.nelit.value()
	self.G.parametry.nmax = self.ui.nmax.value()
	self.G.parametry.nN = self.ui.nN.value()
	self.G.parametry.np = self.ui.np.value()
	self.G.parametry.nrun = self.ui.nrun.value()
	self.G.parametry.nstart = self.ui.nstart.value()
	self.G.parametry.nT = self.ui.nT.value()
	self.G.parametry.Pa = self.ui.Pa.value()
	self.G.parametry.Pi = self.ui.Pi.value()
	self.G.parametry.Pk= self.ui.Pk.value()
	self.G.parametry.Pm= self.ui.Pm.value()
	self.G.parametry.raf= self.ui.raf.value()
	self.G.parametry.ts= self.ui.ts.value()
	self.G.parametry.wc= self.ui.wc.value()
	self.G.parametry.wf= self.ui.wf.value()
	self.G.parametry.wn= self.ui.wn.value()
	self.G.parametry.wp= self.ui.wp.value()
	self.G.parametry.f0= self.ui.f0.value()
	#self.ui.okno_gl.setText(str(self.ui.ba))
	#self.ui.window_cyk.setText(str(self.parametry.ba))
    
    def cancelProperties(self):
	'''metoda ma za zadanie przywrocenie starych danych do formularza w przypadku wcisniecia "anuluj"'''
	self.ui.ba.setValue(self.G.parametry.ba)
	self.ui.cf.setValue(self.G.parametry.cf)
	self.ui.cs.setValue(self.G.parametry.cs)
	self.ui.nelit.setValue(self.G.parametry.nelit)
	self.ui.nmax.setValue(self.G.parametry.nmax)
	self.ui.nN.setValue(self.G.parametry.nN)
	self.ui.np.setValue(self.G.parametry.np)
	self.ui.nrun.setValue(self.G.parametry.nrun)
	self.ui.nstart.setValue(self.G.parametry.nstart)
	self.ui.nT.setValue(self.G.parametry.nT)
	self.ui.Pa.setValue(self.G.parametry.Pa)
	self.ui.Pi.setValue(self.G.parametry.Pi)
	self.ui.Pk.setValue(self.G.parametry.Pk)
	self.ui.Pm.setValue(self.G.parametry.Pm)
	self.ui.raf.setValue(self.G.parametry.raf)
	self.ui.ts.setValue(self.G.parametry.ts)
	self.ui.wc.setValue(self.G.parametry.wc)
	self.ui.wf.setValue(self.G.parametry.wf)
	self.ui.wn.setValue(self.G.parametry.wn)
	self.ui.wp.setValue(self.G.parametry.wp)
	self.ui.f0.setValue(self.G.parametry.f0)