Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » GUI
  • » Определение события, на потерю фокуса PyQt [RSS Feed]

#1 Дек. 23, 2014 21:10:54

mitya_s_v
Зарегистрирован: 2014-09-10
Сообщения: 64
Репутация: +  4  -
Профиль   Отправить e-mail  

Определение события, на потерю фокуса PyQt

Как сделать, чтобы когда определённые виджеты теряют фокус вызывалась нужная мне функция?

Офлайн

#2 Дек. 23, 2014 21:34:51

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Определение события, на потерю фокуса PyQt

# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class MyLineEdit(QtGui.QLineEdit):
    def focusOutEvent(self, event):
        print "focus out"
        super(MyLineEdit, self).focusOutEvent(event)
class Example(QtGui.QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()
    def initUI(self):
        a = MyLineEdit(self)
        b = MyLineEdit(self)
        a.move(60, 100)
        b.move(60, 50)
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Hello!')
        self.show()
def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
if __name__ == '__main__':
    main()
или так
# -*- coding: utf-8 -*-
import sys
from PyQt4 import QtGui, QtCore
class Example(QtGui.QWidget):
    def __init__(self):
        super(Example, self).__init__()
        self.initUI()
    def p(self):
        print text
    def initUI(self):
        self.a = QtGui.QLineEdit(self)
        self.a.installEventFilter(self)
        self.b = QtGui.QLineEdit(self)
        self.b.installEventFilter(self)
        self.a.move(60, 100)
        self.b.move(60, 50)
        self.setGeometry(300, 300, 280, 170)
        self.setWindowTitle('Hello!')
        self.show()
    def eventFilter(self, obj, event):
        if obj == self.b:
            if event.type() == QtCore.QEvent.FocusOut:
                print("Focus Out")
        return False
def main():
    app = QtGui.QApplication(sys.argv)
    ex = Example()
    sys.exit(app.exec_())
if __name__ == '__main__':
    main()



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Дек. 23, 2014 21:35:34)

Офлайн

#3 Дек. 23, 2014 22:06:06

mitya_s_v
Зарегистрирован: 2014-09-10
Сообщения: 64
Репутация: +  4  -
Профиль   Отправить e-mail  

Определение события, на потерю фокуса PyQt

Благодарю)

Офлайн

  • Начало
  • » GUI
  • » Определение события, на потерю фокуса PyQt[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version