• 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

  • 相关阅读:
    改不改,这是一个问题
    连载:面向对象的葵花宝典:思考、技巧与实践(39)
    Oracle压缩总结2— 估计表压缩效应
    CSDN markdown 编辑 第五章 UML
    Arcgis for Javascript之featureLayer图和属性互操作性
    bzoj 2437 [Noi2011]兔子和鸡蛋 [二分图匹配]
    “jquery于each方法和选择”学习笔记
    安卓模拟器错误: Could not open
    软路试--就像一棵树活着
    2014第21周二
  • 原文地址:https://www.cnblogs.com/zach0812/p/11391984.html
Copyright © 2020-2023  润新知