zoukankan      html  css  js  c++  java
  • 焦点控制

    单个控件角度:

    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()        获取子控件中当前聚焦的控件

    一定要等到控件都显示出来,获取焦点后才可以

    没有返回 None

    focusNextChild()      聚焦下一个子控件

    focusPreviousChild()      聚焦上一个子控件

    focusNextPrevChild(bool)

    True: #聚焦下一个子控件

    False: 聚焦上一个子控件

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

    QWidget.setTabOrder(text1,text3) 
      #参数 text1后面是text3

    from PyQt5.QtWidgets import QApplication, QWidget,QLineEdit,QPushButton
    import sys
    
    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)
    
            QWidget.setTabOrder(text1,text3)  #设置子控件获取焦点的先后顺序,静态方法
            #参数  text1后面是text3
            QWidget.setTabOrder(text3, text2)
    
        def mousePressEvent(self, event):  # 鼠标键按下时调用
            s=self.focusWidget()   #获取子控件中当前聚焦的控件
            self.focusNextChild()   #聚焦下一个子控件
            #self.focusPreviousChild()    #聚焦上一个子控件
            #self.focusNextPrevChild(False)   #聚焦上一个子控件
    
    
    
    if __name__=='__main__':
        app=QApplication(sys.argv)  #创建应用
        w=win()
        w.show()
        sys.exit(app.exec_())
  • 相关阅读:
    古文_硕鼠,原文及翻译
    使用php模拟post的几种方法
    alpha版、beta版、rc版的意思
    8007003Windows Update遇到未知错误
    树上10只鸟,开枪打死1只,还剩几只?
    [转]乐死我了,怎么样成为一个全栈程序员(Full Stack Developer),附我想专注的语言
    [转]Visual C++ RunTime的特征——非烫即屯
    斗破苍穹中的几个人物图片
    吐槽一下中国的大学的教材
    百度知道里关于C++的讨论
  • 原文地址:https://www.cnblogs.com/liming19680104/p/10716564.html
Copyright © 2011-2022 走看看