pyqt5-橡皮筋控件QRubberBand
提供一个矩形或线来指示选择或边界
一般结合鼠标事件一同协作
继承于 QWidget
- import sys
- from PyQt5.QtWidgets import QApplication, QWidget,QRubberBand,QCheckBox
- from PyQt5.QtCore import QRect,QSize
- class Demo(QWidget):
- def __init__(self):
- super().__init__()
- self.resize(300,300)
- #rb=QRubberBand(QRubberBand.Rectangle,self) #创建橡皮筋控件
- #参数:橡皮筋的轮廓
- #QRubberBand.Line=0 线
- #QRubberBand.Rectangle=1 矩形
- #rb.setGeometry(10, 10, 50, 40) #位置和大小
- #其它
- #move(x, y) move(QPoint)
- #resize(width, height) resize(QSize)
- #setGeometry(QRect rect)
- #shape() -> QRubberBand.Shape 形状获取
- #rb.show() #显示
- #一般是不显示的,用鼠标选择时才显示
- #案例
- for i in range(0,30):
- cb=QCheckBox(self)
- cb.setText(str(i))
- cb.move(i%4*50,i//4*30)
- #50表示每列的宽度 30表示每行的高度
- #i%4 表示第i列 i//4 表示第几行
- self.rb = QRubberBand(QRubberBand.Rectangle, self) # 创建橡皮筋控件
- def mousePressEvent(self, event): # 鼠标键按下时调用
- #1.尺寸:鼠标的点击位置
- #2.展示橡皮筋控件
- self.weizi=event.pos()
- self.rb.setGeometry(QRect(self.weizi,QSize()))
- self.rb.show()
- def mouseMoveEvent(self, event): # 鼠标移动事件
- #调整橡皮筋控件的尺寸
- self.rb.setGeometry(QRect(self.weizi, event.pos()).normalized())
- #normalized() 使鼠标往下往上归一化,如果width<0 交换左右角;如果height<0,就交换顶角和底角
- #我不理解的问题:QRect的第二个参数不是应该是矩形的width和height,event.pos()不是鼠标的位置吗,它不是宽和高,我认为应该减去原点才是宽和高啊?请理解的学友给我解释解释
- pass
- def mouseReleaseEvent(self, event): # 鼠标键释放时调用
- #1.获取橡皮筋控件的尺寸范围
- #2.遍历所有的子控件,查看哪些控件在区域范围
- rect=self.rb.geometry()
- for child in self.children():
- if rect.contains(child.geometry()) and child.inherits('QCheckBox'):
- #contains rect的范围是否包含参数的范围
- #child.inherits('QCheckBox') child继承于QCheckBox
- child.toggle()
- self.rb.hide()
- pass
- def AA(self,val):
- print(val)
- if __name__ == '__main__':
- app = QApplication(sys.argv)
- demo = Demo()
- demo.show()
- sys.exit(app.exec_())
pyqt5-橡皮筋控件QRubberBand的更多相关文章
- PyQt5——基本控件
PyQt5基本控件使用方法详见:https://blog.csdn.net/jia666666/article/list/5?t=1& PyQt5基本控件汇总: 1.QMainWindow 2 ...
- [ PyQt入门教程 ] PyQt5基本控件使用:单选按钮、复选框、下拉框
本文主要介绍PyQt5界面最基本使用的单选按钮.复选框.下拉框三种控件的使用方法进行介绍. 1.RadioButton单选按钮/CheckBox复选框.需要知道如何判断单选按钮是否被选中. 2.Com ...
- [ PyQt入门教程 ] PyQt5基本控件使用:消息弹出、用户输入、文件对话框
本文主要介绍PyQt界面实现中常用的消息弹出对话框.提供用户输入的输入框.打开文件获取文件/目录路径的文件对话框.学习这三种控件前,先想一下它们使用的主要场景: 1.消息弹出对话框.程序遇到问题需要退 ...
- PyQt5复杂控件(树控件、选项卡控件(滚动条控件、多文档控件、停靠控件)
1.树控件的基本使用方法QTreeWidget'''QTreeWidget树控件的使用方法添加图标,添加表格,添加复选框等'''from PyQt5.QtWidgets import *from Py ...
- PyQt5日历控件及相关操作
1.日历控件QCalendarWidget控件import sys,mathfrom PyQt5.QtWidgets import *from PyQt5.QtGui import *from PyQ ...
- PyQt5基础控件
QLabel标签 功能:在界面上显示文字.图片.链接等 接口: 方法 描述 setText() 设置显示的内容 setAlignment() 设置文字对齐方式 setToolTip() 设置提示信息 ...
- pyqt5为控件设置提示信息
# 显示控件提示消息 import sys from PyQt5.QtWidgets import QHBoxLayout,QMainWindow,QApplication,QToolTip,QPus ...
- PyQt5——隐藏控件并保留位置
原文地址:https://blog.csdn.net/qq_38161040/article/details/86605798 ———————————————————————————————— 设置控 ...
- PyQt5常用控件及方法(代码段)
文章目录PyQt5程序基本格式QMainWindow主窗口QLabel标签QTextBrowser文本浏览器QTextEdit文本编辑器QPushButton按键QCheckBox复选框QRadioB ...
随机推荐
- 写入mongodb
https://blog.csdn.net/u013421629/article/details/78885079 https://www.jianshu.com/p/7d14c3ad810f 可视 ...
- 【pycharm】Mac版快捷键
首先是快捷键的设置,Mac中是在菜单栏的Pycharn/Preference/Keymap中 [快速调试] 1.看函数.方法最初在哪里创建的,这个方法很好用,查看内置函数之类的 按住command, ...
- Linux_Rsync远程同步备份服务器
目录 目录 Remote Sync 同步的类型 本地模式 远程模式 RSync列表模式 RSync 服务模式 Setup RSync service How to use the rsync comm ...
- 3D聚类
1 3D聚类和普通的二维聚类实质一样,只不过维数太高了,用三维图来表示了. 下面将官网的改成只生成一个图了 #!/usr/bin/python # -*- coding:utf-8 -*- print ...
- 那些堪称神器的 Chrome 插件
Chrome 的简洁快速以及丰富的插件种类使得它在国内日益盛行,帮助了我们很多 Chrome 用户提升了工作效率,而今天要给大家推荐8款实用甚至堪称神器的 Chrome 插件,希望对提升大家的工作效率 ...
- is_selected()检查是否选中该元素
is_selected()检查是否选中该元素,一般针对单选框,复选框,返回的结果是bool 值, 以百度登录页面为案例,来验证"下次自动登录"是否勾选,默认是勾选的,返回的结 果应 ...
- 【Linux开发】Linux磁盘管理
第八章 Linux磁盘管理 [查看磁盘或者目录的容量 df 和 du] df 查看已挂载磁盘的总容量.使用容量.剩余容量等,可以不加任何参数,默认是按k为单位显示的:df常用参数有 –i -h -k ...
- mybatis一级缓存和二级缓存的使用
在mybatis中,有一级缓存和二级缓存的概念: 一级缓存:一级缓存 Mybatis的一级缓存是指SQLSession,一级缓存的作用域是SQLSession, Mabits默认开启一级缓存.在同一个 ...
- JSP页面读取数据中的数据内容,出现乱码现象的解决方法
1.首先要确保JSP页面的编码已修改为“utf-8”的字符编码: 2.然后再在jsp页面上添加代码进行设置: 先用getBytes()方法读出数据,然后再new String()方法设置格式为“utf ...
- [BZOJ 3123] [SDOI 2013]森林(可持久化线段树+并查集+启发式合并)
[BZOJ 3123] [SDOI 2013]森林(可持久化线段树+启发式合并) 题面 给出一个n个节点m条边的森林,每个节点都有一个权值.有两种操作: Q x y k查询点x到点y路径上所有的权值中 ...