• PyQt5 控件交互与焦点控制


    ################################
    # PyQt5中文网 - PyQt5全套视频教程 #
    #    https://www.PyQt5.cn/     #
    #         主讲: 村长            #
    ################################
    from PyQt5.Qt import *
    import sys
    
    '''
    交互状态:
    1.是否可用:setEnabled(bool)控件是否禁用  isEnable()
    2.是否显示:setVisible(bool)    isVisible()  isVisibleTo()
    3.是否隐藏: setHidden(bool)  show()隐藏  hide()展示  isHidden()
    4.是否编辑: setWindowModified(bool)   isWindowModified()
    5.是否为活跃窗口: isActiveWindow()
    6.关闭: close()
    信息提示: setStatusTip(str)
    
    '''
    
    
    class Window(QWidget):
        def paintEvent(self, QPaintEvent):
            print('窗口被绘制')
            return super().paintEvent(QPaintEvent)
    
    
    class Btn(QPushButton):
        def paintEvent(self, QPaintEvent):
            print('按钮被绘制')
            return super().paintEvent(QPaintEvent)
    
    
    app = QApplication(sys.argv)
    
    window = Window()
    window.setWindowTitle('控件交互 - PyQt5中文网[*]')
    window.resize(600, 450)
    window.move(300, 300)
    
    btn = QPushButton(window)
    btn.move(60, 60)
    btn.resize(50, 35)
    btn.setText('按钮控件')
    # btn.setStyleSheet('background-color:green')
    
    btn1 = Btn(window)
    btn1.move(100, 100)
    btn1.resize(50, 35)
    btn1.setText('按钮控件')
    # 是否可用
    btn1.setEnabled(False)
    # 是否绘制显示
    # window.show()
    # window.setVisible(True)
    # window.setHidden(True)
    
    btn1.setVisible(True)
    btn1.setHidden(True)
    
    window.setWindowModified(True)  # 现在标题后面设一个 [*] 放在标题任何位置都可以,但是一定要放 *
    
    # print(window.isActiveWindow())
    
    # 窗口关闭,不会会释放对象
    # btn1.setVisible(False)
    # btn1.setHidden(True)
    # btn1.hide()
    
    # 想要释放对象必须组合setAttribute一起使用,可以使用destroyed信号来检测
    btn1.destroyed.connect(lambda: print('按钮被释放'))
    btn1.setAttribute(Qt.WA_DeleteOnClose, True)
    btn1.close()
    
    window1 = QMainWindow()  # 懒加载窗口控件,只用用到的时候才会加载状态栏
    window1.statusBar()  # 触发懒加载
    window1.setStatusTip('这是一个懒加载窗口')
    
    btn2 = QPushButton(window1)
    btn2.setText('按钮2')
    btn2.setStatusTip('按钮22')
    btn2.setToolTip('停留一段时间显示')
    
    window1.show()
    window.show()
    sys.exit(app.exec_())
    
    ql2.setFocus()
    ql2.clearFocus()
    
    # TabFocus  只能使用Tab键才能获取焦点
    # ClickFocus  只能使用鼠标点击才能获取焦点
    # StrongFocus 上面两种都行
    # NoFocus  上面两种都不行
    # ql2.setFocusPolicy(Qt.StrongFocus)
  • 相关阅读:
    JS小记
    chrome 插件开发
    js闭包理解
    文件名后缀详解
    Glut 回调函数小结
    vc++ 6.0下Glut的配置 及 Glut 框架介绍
    数字图像点运算实践 (直方图均衡和分段线性拉伸)
    event.keycode值大全
    Bookmarklet
    牛人经典语录
  • 原文地址:https://www.cnblogs.com/lvdongjie/p/16331224.html
Copyright © 2020-2023  润新知