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 ...
随机推荐
- 用 Python 解答两道来自阿里伯乐系统的笔试题
目录 目录 前言 题目一 分析 实现 题目二 分析 实现 前言 朋友到阿里面试,分享两道小题,博主比较闲就试着用 Python 解答一下,实现方式肯定是多种多样的,优劣也会各有不同,欢迎交流. 题目一 ...
- replace()函数
1 https://jingyan.baidu.com/article/454316ab4d0e64f7a6c03a41.html
- Mysql数据库存储数据时间与系统获取时间不一致
最近进行项目开发,发现存在数据库内的数据和系统查询到的数据相差8小时 发现有2种比较合适的方法 (一)修改mysql服务的区时 centos进入mysql查看/修改时区 1.输入以下命令进入mysql ...
- 应用安全 - Web框架 - 数据库管理 - phpMyAdmin - 漏洞汇总
CVE-2019-18622 Date: 2019.10.28 类型: SQL injection in Designer feature 影响范围: phpMyAdmin versions prio ...
- 网络编程.iocp
1.(20191212)查到的一些资料:java从 JDK7开始 引入AOI(即 NIO2).然后 实现 IOCP使用的是 AsynchronousChannelGroup.AsynchronousS ...
- 20191127 Spring Boot官方文档学习(6-8)
6.部署Spring Boot应用程序 在部署应用程序时,Spring Boot的灵活打包选项提供了很多选择.您可以将Spring Boot应用程序部署到各种云平台,容器映像(例如Docker)或虚拟 ...
- 将从model中获得的数据传到js函数中
刚遇到了一种情况,从controller中获得的model是一个集合,需要将这个集合循环放到标签中,并且需要为这些标签添加点击事件,每个值传入对应的点击事件函数中,由于model中的值是通过${ite ...
- 发布项目到github上web服务器来运行
$ git add dist Administrator@LuoTong- MINGW32 /D/react_workspace (master) $ git commit -m "git ...
- 【狗屁不通文章生成器】代码分析 (javaScript)
这几天在论坛上看到了一个很有意思的项目,一个生成"狗屁不通"的文章的程序.经过本人确定其的确是"狗屁不通"后,随后又好奇其实现,于是在其[GitHub]项目里( ...
- [集合]Map的 entrySet() 详解以及用法(四种遍历map的方式)
Entry 由于Map中存放的元素均为键值对,故每一个键值对必然存在一个映射关系. Map中采用Entry内部类来表示一个映射项,映射项包含Key和Value (我们总说键值对键值对, 每一个键值对也 ...