焦点控制

单个控件角度:

setFocus()     指定控件获取焦点

setFocusPolicy(Policy)    设置焦点获取方式

Qt.TabFocus    通过Tab键获得焦点,单击不能获得焦点

Qt.ClickFocus    通过被单击获得焦点,Tab键不能获得获得焦点

Qt.StrongFocus      上面两种方式都可以获得焦点

Qt.NoFocus       不能通过上两种方式获得焦点(默认值),setFocus仍可使其获得焦点

注意:setFocus()在任何方式下都可获得焦点

clearFocus()      取消焦点

from PyQt5.QtWidgets import QApplication, QWidget,QLabel,QPushButton,QLineEdit,QMainWindow
import sys

from PyQt5.QtCore import Qt

class win(QWidget):
    def __init__(self):
        super().__init__()
        self.resize(300,300)
        self.setWindowTitle('焦点控制')
        text1=QLineEdit(self)
        text1.move(80,10)
        text2 = QLineEdit(self)
        text2.move(80, 50)
        text3 = QLineEdit(self)
        text3.move(80, 90)

        #text2.setFocus()  #指定控件获取焦点
        #text2.setFocusPolicy(Qt.TabFocus)   #通过Tab键获得焦点,单击不能获得焦点
        #text2.setFocusPolicy(Qt.ClickFocus)  #通过被单击获得焦点,Tab键不能获得获得焦点
        text2.setFocusPolicy(Qt.StrongFocus)  #上面两种方式都可以获得焦点

        
if __name__=='__main__':
    app=QApplication(sys.argv)  #创建应用
    w=win()
    w.show()
    sys.exit(app.exec_())

父控件角度:

focusWidget()        获取子控件中当前聚焦的控件

focusNextChild()      聚焦下一个子控件

focusPreviousChild()      聚焦上一个子控件

focusNextPrevChild(bool)

True: 下一个

False: 上一个

setTabOrder(pre_widget, next_widget)     设置子控件获取焦点的先后顺序

猜你喜欢

转载自www.cnblogs.com/liming19680104/p/10716564.html