当前位置:  开发笔记 > 编程语言 > 正文

如何知道ui形式的哪个qwidget在pyqt中得到了关注

如何解决《如何知道ui形式的哪个qwidget在pyqt中得到了关注》经验,为你挑选了1个好方法。



1> eyllanesc..:

您必须实现该eventFilter方法并将此属性启用到所需的小部件:

{your widget}.installEventFilter(self)

eventFilter方法具有事件的对象和类型作为信息.

import sys
from PyQt5 import uic
from PyQt5.QtCore import QEvent
from PyQt5.QtWidgets import QApplication, QWidget

uiFile = "widget.ui"  # Enter file here.

Ui_Widget, _ = uic.loadUiType(uiFile)


class Widget(QWidget, Ui_Widget):
    def __init__(self, parent=None):
        super(Widget, self).__init__(parent=parent)
        self.setupUi(self)
        self.lineEdit.installEventFilter(self)
        self.pushButton.installEventFilter(self)
        self.comboBox.installEventFilter(self)

    def eventFilter(self, obj, event):
        if event.type() == QEvent.FocusIn:
            if obj == self.lineEdit:
                print("lineedit")
            elif obj == self.pushButton:
                print("pushbutton")
            elif obj == self.comboBox:
                print("combobox")
        return super(Widget, self).eventFilter(obj, event)

if __name__ == '__main__':
    app = QApplication(sys.argv)
    w = Widget()
    w.show()
    sys.exit(app.exec_())

在此输入图像描述

输出继电器:

lineedit
pushbutton
combobox
pushbutton
lineedit

推荐阅读
LEEstarmmmmm
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有