2013-09-16 43 views
-3

У меня возникли проблемы с присвоением значений QLineEdit. Я прочитал документацию и чувствую, что в какой-то момент будет использоваться команда QLineEdit.SetText().Назначить строку QLineEdit с помощью PySide/PyQt

Я использовал Qt Designer для разработки графического интерфейса для моего программного обеспечения. В главном окне (MainWindow.py, с сопровождающим файлом установки ui_MainWindow.py) у меня есть LineEdit (lineEditScanBarcode), который имеет сильный фокус. Мне удалось получить доступ к этому LineEdit довольно хорошо. Я хотел бы сделать следующее:

Если вход в LineEditScanBarcode = x, то назначьте имя «Джон Смит» второму QLineEdit (lineEditUser), который имеет политику нулевого фокуса. Это то, что я до сих пор:

def ScanBarcode(self): 
    barcode = self.lineEditScanBarcode.text() 
    self.lineEditScanBarcode.clear() 
    if barcode == '12345': 
     print("Welcome John") 
     self.lineEditUser.setText() = 'John' 
    else: print("Sorry, user not recognised.") 

После запуска этого я получаю следующее сообщение об ошибке:

Syntax Error: can't assign to function call 

Я имел взгляд на выше ошибки, но я все еще не уверены в к тому, что здесь происходит. Я до сих пор не имею идеи открывать одно окно поверх другого (этот пакет программного обеспечения будет содержать около 10 окон), но это еще одна история!

Является ли моя логика здесь на ходу? Раньше я никогда раньше не использовал Qt, поэтому мое понимание вовлеченных тонкостей, по меньшей мере, не хватает.

Любой вход будет отличным!

+2

В вашем сообщении об ошибке говорится: «Невозможно назначить вызов функции». И вот что вы здесь делаете: 'self.lineEditUser.setText() = 'John''. Я думаю, 'self.lineEditUser.setText ('John')' - это то, что вы имели в виду. – zero323

+0

@ zero323 Большое спасибо за разъяснение, которое имеет прекрасный смысл сейчас и, без сомнения, поможет в будущем понимании этого класса. Благодаря! – jars121

+0

python не принимает 'self.lineEditUser.setText() = 'John'selfElineUser.setText() =' John'', потому что вы назначили значение для функции. – PersianGulf

ответ

1

Как комментарий состояний, ошибка в этой строке:

self.lineEditUser.setText() = 'John' 

Вы пытаетесь присвоить значение 'John' к этому FunctionCall (как ошибочные состояния). Если вы просмотрите документацию для QLineEdit in PyQT, вы увидите, что для QLineEdit.setText() требуется передать строку.

Итак, что вам нужно сделать, вместо того, чтобы это передать значение 'John' функции следующим образом:

self.lineEditUser.setText('John') 

На другой отметить вашу идею, что ваш

software package will have about 10 windows

, безусловно, то, что вы хотите пересмотреть. Больше окон, особенно когда они отстыковываются и плавают независимо, несомненно, вызовут проблемы удобства использования. Я настоятельно рекомендую поделиться своими идеями по телефону UserExperience.SE.

+0

Удивительный ответ, большое спасибо! Теперь это имеет смысл. – jars121

Смежные вопросы