2016-05-11 16 views
-1

良い日は、私はPyQtは、次のコードを実行することはできません、私は新たなんだと、本当にクラスを理解していない、私はコラボレーションPyQtはGUI、LINEEDIT、ゲームの首謀

に感謝どうやら問題は、接続する方法であります機能(self.ui.lineEdit_2.returnPressed.connect(self.checkText)

# -*- coding: utf-8 -*- 

import sys 
from mastermind import * 
from PyQt5 import QtWidgets 
import random 
import time 



class Menu_mm(QtWidgets.QDialog): 
    def __init__(self,parent=None): 
     QtWidgets.QWidget.__init__(self,parent) 
     self.ui = Ui_MasterMind() 
     self.ui.setupUi(self) 

     self.ui.comboBox.addItem("Facil") 
     self.ui.comboBox.addItem("Dificil") 
     self.ui.comboBox.addItem("Legendario") 
     self.ui.comboBox.activated.connect(self.num) 
     self.ui.pushButton.clicked.connect(self.Empezar) 
     self.ui.label_14.setVisible(False) 
     self.ui.label_19.setVisible(False) 
     self.ui.label_20.setVisible(False) 
     self.ui.label_15.setVisible(False) 
     self.ui.label_16.setVisible(False) 



    def num(self): 
     x= self.ui.comboBox.currentText() 

     if x == "Facil": 
      self.ui.label_6.setText("3") 
      y=1 
     elif x == "Dificil": 
      self.ui.label_6.setText("4") 
      y=2 
     else: 
      self.ui.label_6.setText("5") 
      y=3 

    def Empezar(self): 
     x = self.ui.comboBox.currentText() 

     if x == "Facil": 
      y = 1 
     elif x == "Dificil": 
      y = 2 
     else: 
      y = 3 

     continuar = 1 

     while continuar == 1: 


      if y == 1: 
       cant_digitos = 3 
      elif y == 2: 
       cant_digitos = 4 
      elif y == 3: 
       cant_digitos = 5 
      print(cant_digitos) 

      #print("cant_digitos") 

      digitos = ('0', '1', '2', '3', '4', '5', '6', '7', '8', '9') 
      codigo = '' 

      for i in range(cant_digitos): 
       elegido = random.choice(digitos) 
       while elegido in codigo: 
        elegido = random.choice(digitos) 
       codigo = codigo + elegido 
      print(codigo) 

      global propuesta 
      propuesta = self.ui.lineEdit_2.text() 


      intentos = 1 


      while propuesta != codigo: 
       intentos = intentos + 1 
       aciertos = 0 
       coincidencias = 0 
       for i in range(cant_digitos): 
        if propuesta[i] == codigo[i]: 
         aciertos = aciertos + 1 
        elif propuesta[i] in codigo: 
         coincidencias = coincidencias + 1 



       propuesta=self.ui.lineEdit_2.text() 

       self.ui.lineEdit_2.returnPressed.connect(self.checkText) 


       print(propuesta) 
       self.ui.label_13.setText(str(propuesta)) 
       self.ui.label_9.setText(str(aciertos)) 
       self.ui.label_11.setText(str(coincidencias)) 

      self.ui.label_14.setVisible(True) 
      self.ui.label_15.setVisible(True) 
      self.ui.label_16.setVisible(True) 



    def checkText(self): 
     propuesta =self.ui.lineEdit_2.Text() 
     print("si") 
     self.ui.lineEdit_2.clear() 


if __name__ == "__main__": 
    app = QtWidgets.QApplication(sys.argv) 
    myapp = Menu_mm() 
    myapp.show() 
    sys.exit(app.exec_()) 
+1

なぜあなたはそれを実行できませんか?受け取ったエラーを私達に提供してください。 Btw、質問のタイトルをあなたの問題を説明する意味のあるものに変更してください。 –

+0

ご協力いただきありがとうございます。大きな問題は、ループが継続して実行され、lineEdit_2に新しいエントリを入力させないことです。 –

+0

うーん、これはあなたがそこに無限のループを持っているからです。 'continuar'は1に設定され、決して変更されません。 –

答えて

0

あなたがループ内connect文を置くべきではありません。ループ

を通じて各反復のために新しい接続を作成するために起こっています
while continuar == 1: 
    while propuesta != codigo: 
     self.ui.lineEdit_2.returnPressed.connect(self.checkText) 

あなたはおそらくその接続をしたいと思うでしょう。__init__

+0

私はあなたの助けに感謝しますが、問題は、新しいエントリを入力するためにループが行E2it_2で停止しないということです。 –

関連する問題