zoukankan      html  css  js  c++  java
  • PyQt5 控件学习(一个一个学习之QRubberBand)

    QRubberBand 继承图:

    QRubberBand 描述:

    它一般都是结合鼠标来完成某种需求。

    QRubberBand 继承:

    它是继承自QWidget 的

    QRubberBand 功能作用:

    from PyQt5.Qt import * #刚开始学习可以这样一下导入
    import sys
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QRubberBand的学习")
            self.resize(400,400)
            self.set_ui()
    
    
        def set_ui(self):
            rubberBand = QRubberBand(QRubberBand.Rectangle,self)
            rubberBand.setGeometry(60,60,80,80)
            print(rubberBand.isVisible())
            rubberBand.show()
    
    
    
    
    if __name__ == '__main__':
        app =QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    案例:

    from PyQt5.Qt import *  # 刚开始学习可以这样一下导入
    import sys
    
    
    class Window(QWidget):
        def __init__(self):
            super().__init__()
            self.setWindowTitle("QRubberBand的案例")
            self.resize(400, 400)
            self.set_ui()
    
        def set_ui(self):
            for i in range(30):
                checkBox = QCheckBox(self)
                checkBox.setText(str(i))
                checkBox.move(i % 4 * 50, i // 4 * 50)
    
            self.rubberBand = QRubberBand(QRubberBand.Rectangle, self)
    
    
        def mousePressEvent(self, event):
            self.origin_pos = event.pos()
            self.rubberBand.setGeometry(QRect(self.origin_pos, QSize()))  # QSize() 此时为-1 -1
            self.rubberBand.show()
    
    
        def mouseMoveEvent(self, event):
            # self.rubberBand.setGeometry(QRect(self.origin_pos,event.pos())) #这里是不可以反着拖的
            self.rubberBand.setGeometry(QRect(self.origin_pos, event.pos()).normalized())  # 这里可以
    
    
        def mouseReleaseEvent(self, event):
            rect = self.rubberBand.geometry()
            for child in self.children():
                if rect.contains(child.geometry()) and child.inherits("QCheckBox"):
                    # print(child)
                    child.toggle()
    
            self.rubberBand.hide()
    
    
    if __name__ == '__main__':
        app = QApplication(sys.argv)
    
        window = Window()
        window.show()
    
        sys.exit(app.exec_())
    View Code

    QRubberBand 信号:

    总结:

    以上就是橡皮筋选中的内容,下面看输入控件中的另一个对话框QDialog:https://www.cnblogs.com/zach0812/p/11392611.html

  • 相关阅读:
    redis sentinel搭建以及在jedis中使用
    redis入门指南书中概要
    mysql crash cource 书中实例
    图片服务器域名选择
    自行实现一个简易RPC框架
    webservice基础
    maven实战
    类似◇形的图形,四边都是对应的行数的数字。
    C 中随机数
    给特定的寄存器赋值,读特定的寄存器
  • 原文地址:https://www.cnblogs.com/zach0812/p/11391984.html
Copyright © 2011-2022 走看看