返回顶部

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

 

posted @ 2019-08-22 09:45  Zcb0812  阅读(751)  评论(0编辑  收藏  举报