2016-03-23 35 views
1

Bu özel pencerede 2 adet QLineEdits vardır: biri "Kullanıcı" ve diğeri "Şifre" olarak adlandırılır. Onların altında birçok QPushButtons ile oluşturulmuş bir klavye var. Şimdi, ilgili QLineEdit'deki ilgili harfi veya sayıyı yazdırmak için bu düğmelere bağlı yöntemi söylemeliyim ve şu anda QLineEdit'in seçildiği sinyali almakta zorlanıyorum.Pyqt: QLineEdit'in odaklandığı bir sinyal nasıl alınır?

Bu sinyali nasıl alabilirim? Uygulama, "Kullanıcı" ile odaklanmış: self.User.setFocus()

Teşekkür ederiz.

cevap

2

Varsayılan olarak, düğmeler tıklattığınızda odağa gelir. Odak ilkelerini NoFocus olarak ayarlayarak bunu değiştirebilirsiniz. Bu şekilde, kullanıcılar düğmelerini tıkladıklarında sıralı sayılar odaklanmayacaktır.

button.setFocusPolicy(QtCore.Qt.NoFocus) 

sürece lineEdit düğmesi tıklandığında, böyle düğme işleyicisindeki odaklanmış widget'ı alabilirsiniz odak vardı:

lineedit = QtGui.QApplication.focusWidget() 

Sen odaklanmış Widget olduğundan emin olmak için kontrol edebilir iki lineedit widget'larından biri ve daha sonra metinlerini buna göre günceller.

+0

Çok teşekkür ederim, bu çok yardımcı oluyor. 'Lineedit = QtGui.QApplication.focusWidget() 'ile:' ' dan, bundan nasıl nesnenin adını alabilirim? –

+0

Oh, anladım, 'lineedit = QtGui.QApplication.focusWidget() 'de olduğu gibi,' .objectName()' satırına eklemek kadar basittir. ObjectName() ' –