2017-02-13 19 views
-1

Я разработал GUI в Qt Designer, в котором пользователь может ввести два значения в QLineEdit, и когда пользователь попадает в него, он выполняет некоторые математические вычисления.Pyside: QLineEdit принимает несколько входов

Проблема заключается в том, что после ввода значений и ввода после выхода я не могу вводить входы в QLineEdit, но каждый раз необходимо перезапустить графический интерфейс. Вот мой код

def entervalues(self): 
     if self.RotationEdit.text() != "" and self.TiltEdit.text() != "": 
      self.RotationEdit = str(self.RotationEdit.text()) 
      self.TiltEdit = str(self.TiltEdit.text()) 
      self.pass_arguments.emit("self.RotationEdit","self.TiltEdit") 
     else: 
      QMessageBox.information(self, "Error","No Values Entered") 

Если я пытаюсь ввести значения и нажать Enter, это выдает ошибку атрибута.

line 100, in entervalues 
    if self.RotationEdit.text() != "" and self.TiltEdit.text() != "": 
    AttributeError: 'str' object has no attribute 'text' 

enter image description here

+0

Что вы хотите сделать с этим кодом: 'self.RotationEdit = str (self.RotationEdit.text())'? – eyllanesc

+0

Эти значения self.RotationEdit и self.TiltEdit передаются в другую функцию, которая выполняет математические вычисления при нажатии клавиши –

+0

self.RotationEdit - это виджет или строка? – eyllanesc

ответ

1

Проблема возникает, что в вашем коде вы изменяете объект self.RotationEdit

self.RotationEdit = str(self.RotationEdit.text()) 

Когда вы изначально объявлять это QLineEdit, а затем присвоить строку. Когда вы его повторно используете, это все равно будет строка, поэтому функция text() не определена. Я рекомендую создать новую переменную, содержащую значения, которые вы будете использовать в другой функции.

def entervalues(self): 
    if self.RotationEdit.text() != "" and self.TiltEdit.text() != "": 
     self.pass_arguments.emit(self.RotationEdit.text(),self.TiltEdit.text()) 
    else: 
     QMessageBox.information(self, "Error","No Values Entered") 
+0

Как вы определили: 'self.pass_arguments'? – eyllanesc