当前位置: 首页 > news >正文

pyqt Pyton VTK 使用 滑块 改变 VTK Actor 颜色

使用 PyQt5 vtk  vtk球体 使用滑块 RGB 改变 Actor 颜色

 CODE

import sys
from PyQt5.QtWidgets import *
from PyQt5.QtWidgets import (QApplication, QCheckBox, QGridLayout, QGroupBox,QMenu, QPushButton, QRadioButton, QVBoxLayout, QWidget, QSlider,QLineEdit,QLabel)
from PyQt5.QtCore import *
from PyQt5.QtGui import *
from PyQt5 import *
import vtk
from vtk.qt.QVTKRenderWindowInteractor import QVTKRenderWindowInteractor
#from PyQt5 import Qt
from PyQt5.QtCore import Qt #有一些常量在这里面,eg:blue
def window():ren = vtk.vtkRenderer()source = vtk.vtkSphereSource()source.SetCenter(0, 0, 0)source.SetRadius(1.0)app = QApplication(sys.argv)win = QWidget()Display_1 = QLCDNumber(3)Display_2 = QLCDNumber(3)Display_3 = QLCDNumber(3)Display_1.setSegmentStyle(QLCDNumber.Flat)Display_2.setSegmentStyle(QLCDNumber.Flat)Display_3.setSegmentStyle(QLCDNumber.Flat)Display_1.display(128)Display_2.display(128)Display_3.display(128)Slider_1 = QSlider(win)Slider_1.setMinimum(0)Slider_1.setMaximum(255)Slider_1.setValue(128)Slider_1.valueChanged.connect(Display_1.display)Slider_2 = QSlider(win)Slider_2.setMinimum(0)Slider_2.setMaximum(255)Slider_2.setValue(128)Slider_2.valueChanged.connect(Display_2.display)Slider_3 = QSlider(win)Slider_3.setMinimum(0)Slider_3.setMaximum(255)Slider_3.setValue(128)Slider_3.valueChanged.connect(Display_3.display)label_1 = QLabel("Label_R")label_1.setAlignment(Qt.AlignCenter)label_2 = QLabel("Label_G")label_2.setAlignment(Qt.AlignCenter)label_3 = QLabel("Label_B")label_3.setAlignment(Qt.AlignCenter)vbox = QVBoxLayout()vbox.addWidget(label_1)vbox.addWidget(Display_1)vbox.addWidget(Slider_1)vbox.addWidget(label_2)vbox.addWidget(Display_2)vbox.addWidget(Slider_2)vbox.addWidget(label_3)vbox.addWidget(Display_3)vbox.addWidget(Slider_3)vbox.addStretch()hbox = QHBoxLayout()frame = QFrame()frame.setFrameShape(QFrame.StyledPanel)frame.setFrameShape(QFrame.StyledPanel) # Application de la formeframe.setFrameShadow(QFrame.Raised) # application d'une ombreframe.setObjectName("frame") # Appellation du cadre#b3 = QtWidgets.QPushButton("Button3")#b4 = QtWidgets.QPushButton("Button4")hbox.addWidget(frame)hbox.addStretch()#hbox.addWidget(b4)vbox.addStretch()hbox.addLayout(vbox)win.setLayout(hbox)vtkWidget = QVTKRenderWindowInteractor(frame)vl =  QVBoxLayout()vl.addWidget(vtkWidget)vtkWidget.GetRenderWindow().AddRenderer(ren)iren = vtkWidget.GetRenderWindow().GetInteractor()# Create a mappermapper = vtk.vtkPolyDataMapper()mapper.SetInputConnection(source.GetOutputPort())# Create an actoractor = vtk.vtkActor()actor.SetMapper(mapper)ren.AddActor(actor)ren.ResetCamera()frame.setLayout(vl)def handler():changevalue(Slider_1, Slider_2,Slider_3,actor)ren.ResetCamera()ren.Render()vtkWidget.GetRenderWindow().Render()Slider_1.valueChanged.connect(handler)Slider_2.valueChanged.connect(handler)Slider_3.valueChanged.connect(handler)#setCentralWidget(self.frame)#show()iren.Initialize()iren.Start()win.setWindowTitle("PyQt-vtkSphere")win.resize(743, 430)win.show()sys.exit(app.exec_())def changevalue(slider1,slider2,slider3,actor):valueR  = slider1.value()valueG =  slider2.value()valueB =  slider3.value()print("RGB",valueR,valueG,valueB)#source.SetRadius(int(value))actor.GetProperty().SetColor(valueR/100.0,valueG/100.0,valueB/100.0)if __name__ == '__main__':window()

相关文章:

pyqt Pyton VTK 使用 滑块 改变 VTK Actor 颜色

使用 PyQt5 vtk vtk球体 使用滑块 RGB 改变 Actor 颜色 CODE import sys from PyQt5.QtWidgets import * from PyQt5.QtWidgets import (QApplication, QCheckBox, QGridLayout, QGroupBox,QMenu, QPushButton, QRadioButton, QVBoxLayout, QWidget, QSlider,QLineEdit,QLabe…...

春秋云镜 CVE-2019-16113

春秋云镜 CVE-2019-16113 Bludit目录穿越漏洞 靶标介绍 在Bludit<3.9.2的版本中&#xff0c;攻击者可以通过定制uuid值将文件上传到指定的路径&#xff0c;然后通过bl-kernel/ajax/upload-images.php远程执行任意代码。 启动场景 漏洞利用 exp https://github.com/Kenun…...

【JavaEE基础学习打卡06】JDBC之进阶学习PreparedStatement

目录 前言一、PreparedStatement是什么二、重点理解预编译三、PreparedStatement基本使用四、Statement和PreparedStatement比较1.PreparedStatement效率高2.PreparedStatement无需拼接参数3.PreparedStatement防止SQL注入 总结 前言 &#x1f4dc; 本系列教程适用于JavaWeb初学…...

Postgresql12基于时间点恢复

1、环境 centos 7系统 postgresql 12 docker 20.10.6 2、整体思路 1&#xff09;进行一个pgdata目录的全量备份 2&#xff09;通过wal日志恢复到故障发生之前某个时间点 3、操作步骤 配置postgresql.conf文件 #日志级别 wal_level replica #归档开关 archive_mode on …...

【MySQL系列】Select语句单表查询详解(二)ORDERBY排序

&#x1f490; &#x1f338; &#x1f337; &#x1f340; &#x1f339; &#x1f33b; &#x1f33a; &#x1f341; &#x1f343; &#x1f342; &#x1f33f; &#x1f344;&#x1f35d; &#x1f35b; &#x1f364; &#x1f4c3;个人主页 &#xff1a;阿然成长日记 …...

C++学习第十九天----简单文件输入/输出和今日工作问题

1.写入到文本文件中 cout用于控制台输出&#xff1b; 必须包含头文件iostream&#xff1b; 头文件iostream定义了一个用于处理输出的ostream类&#xff1b; 头文件iostream声明了一个名为cout的ostream变量&#xff08;对象&#xff09;&#xff1b; 必须指明名称空间std&…...

基于风险的漏洞管理

基于风险的漏洞管理涉及对即将被利用的漏洞的分类响应&#xff0c;如果被利用&#xff0c;可能会导致严重后果。本文详细介绍了确定漏洞优先级时要考虑的关键风险因素&#xff0c;以及确保基于风险的漏洞管理成功的其他注意事项。 什么是基于风险的漏洞管理对基于风险的漏洞管…...

命令行——Git基本操作总结

介绍 我们的操作使用的是客户端TortoiseGit 操作的git ,实际上底层依旧是使用的命令行帮我们执行, 在早期 git 并没有窗口化工具,开发人员只能使用命令行模式 实际上,如果你掌握并熟练使用了命令行模式操作git 的话,你会发现某些操作命令行比窗口化操作要简单 所有你在工作中…...

验证评估守护关基安全 赛宁数字孪生靶场创新实践

​​近日&#xff0c;由赛宁网安主办&#xff0c;ISC互联网安全大会组委会协办的第十一届互联网安全大会&#xff08;ISC 2023&#xff09;安全运营实践论坛圆满结束。赛宁网安产品总监史崯出席并作出主题演讲&#xff1a;《基于数字孪生靶场如何开展验证评估》&#xff0c;同时…...

R语言09-R语言中的字符函数和分布相关函数

字符函数 paste() 和 paste0(): 将多个字符向量连接成一个字符串&#xff0c;paste0() 直接连接&#xff0c;而 paste() 可以通过 sep 参数指定分隔符。 vector1 <- c("Hello", "world") vector2 <- c("R", "programming") re…...

pnpm无法加载文件 (解决方法 )

现在要运行一个TS的项目&#xff0c;我的电脑上没有安装pnpm&#xff0c;导致我的vscode一直报错无法加载。 pnpm安装&#xff1a; npm install -g pnpm pnpm : 无法加载文件 pnpm : 无法加载文件 C:\Users\HP\AppData\Roaming\npm\pnpm.ps1&#xff0c;因为在此系统上禁止运…...

做一个蛋糕店小程序需要哪些步骤?

对于一些不懂技术的新手来说&#xff0c;创建蛋糕店小程序可能会感到有些困惑。但是&#xff0c;有了乔拓云平台的帮助&#xff0c;你可以轻松地创建自己的蛋糕店小程序。下面&#xff0c;我将为大家详细介绍一下具体的操作步骤。 首先&#xff0c;登录乔拓云平台并进入后台管理…...

Docker的革命:容器技术如何重塑软件部署之路

引言 在过去的几年中&#xff0c;容器技术已经从一个小众的概念发展成为软件开发和部署的主流方法。Docker&#xff0c;作为这一变革的先驱&#xff0c;已经深深地影响了我们如何构建、部署和运行应用程序。本文将探讨容器技术的起源&#xff0c;Docker如何崛起并改变了软件部…...

【ARM-Linux】项目,语音刷抖音项目

文章目录 所需器材装备操作SU-03T语音模块配置代码&#xff08;没有用wiring库&#xff0c;自己实现串口通信&#xff09;结束 所需器材 可以百度了解以下器材 orangepi-zero2全志开发板 su-03T语音识别模块 USB-TTL模块 一个安卓手机 一根可以传输的数据线 装备操作 安…...

Linux驱动开发:技术、实践与Linux的历史

一、引言 Linux&#xff0c;这个开源的操作系统&#xff0c;已经在全球范围内赢得了开发者和企业的广泛支持。它的强大之处在于其内核以及无数的驱动程序&#xff0c;这些驱动程序使得各种硬件设备可以在Linux操作系统上运行。本篇文章将深入探讨Linux驱动开发&#xff0c;包括…...

# Go学习-Day5

文章目录 map增加和更新删除查询遍历&#xff08;for-range&#xff09;map切片关于哈希表遍历的一点看法对map的key排序 结构体与OOP声明、初始化、序列化方法工厂模式 个人博客&#xff1a;CSDN博客 map map是一个key-value的数据结构&#xff0c;又称为字段或关联数组 Gol…...

创建型(二) - 单例模式

一、概念 单例设计模式&#xff08;Singleton Design Pattern&#xff09;&#xff1a;一个类只允许创建一个对象&#xff08;或者实例&#xff09;&#xff0c;那这个类就是一个单例类。 优点&#xff1a;在内存里只有一个实例&#xff0c;减少了内存的开销&#xff0c;避免…...

基于swing的图书借阅管理系统java jsp书馆书籍信息mysql源代码

本项目为前几天收费帮学妹做的一个项目&#xff0c;Java EE JSP项目&#xff0c;在工作环境中基本使用不到&#xff0c;但是很多学校把这个当作编程入门的项目来做&#xff0c;故分享出本项目供初学者参考。 一、项目描述 基于swing的图书借阅管理系统 系统有2权限&#xff1…...

Android相机-HAL-Rockchip-hal3

引言&#xff1a; 对于Android相机的 HAL层而言对上实现一套Framework的API接口&#xff0c;对下通过V4L2框架实现与kernel的交互。不同的平台会有不同的实现方案。主要是对Android HAL3的接口的实现。看看rockchip是怎么支持hal3的&#xff1f; 代码目录&#xff1a; hardw…...

基于Java+SpringBoot+vue前后端分离华强北商城二手手机管理系统设计实现

博主介绍&#xff1a;✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、Java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精彩专…...

从“雾里看花”到清晰可见:手把手教你用Matlab复现水下图像去雾经典论文

从“雾里看花”到清晰可见&#xff1a;手把手教你用Matlab复现水下图像去雾经典论文 水下摄影常常面临光线衰减和悬浮颗粒散射的困扰&#xff0c;导致拍摄的画面如同蒙上一层薄雾。这种现象不仅影响视觉效果&#xff0c;更给海洋科研、水下工程带来诸多不便。2009年&#xff0c…...

抖音无水印内容管理工具:从数据获取到价值沉淀的完整指南

抖音无水印内容管理工具&#xff1a;从数据获取到价值沉淀的完整指南 【免费下载链接】douyin-downloader 项目地址: https://gitcode.com/GitHub_Trending/do/douyin-downloader 你是否曾遇到这样的困境&#xff1a;精心收藏的抖音教学视频突然消失&#xff0c;重要的…...

AMD笔记本性能优化与温度控制完全指南:使用G-Helper实现CPU降压调优

AMD笔记本性能优化与温度控制完全指南&#xff1a;使用G-Helper实现CPU降压调优 【免费下载链接】g-helper Lightweight Armoury Crate alternative for Asus laptops. Control tool for ROG Zephyrus G14, G15, G16, M16, Flow X13, Flow X16, TUF, Strix, Scar and other mod…...

基于滑模变结构观测器的永磁同步电机失磁故障容错补偿控制

基于失磁故障容错补偿的永磁同步电机控制【提供参考资料】 一、算法简介 基于滑模变结构观测器&#xff0c;将状态电流观测值作为反馈量&#xff0c;利用滑模变结构等值控制原理&#xff0c;建立实时估计永磁磁链算式&#xff0c;从而进行补偿。 避免因失磁导致的转速下降&…...

线激光手眼标定里,欧拉角和四元数到底怎么选?一个案例讲清机器人姿态的‘坑’

线激光手眼标定中欧拉角与四元数的抉择&#xff1a;从理论误区到工程实践 在机器人视觉系统中&#xff0c;手眼标定是连接感知与执行的关键桥梁。当激光传感器安装在机械臂末端时&#xff0c;如何准确描述传感器坐标系与机器人坐标系之间的姿态关系&#xff0c;直接决定了后续视…...

5分钟快速部署!终极开源邮件营销平台BillionMail完全指南 [特殊字符]

5分钟快速部署&#xff01;终极开源邮件营销平台BillionMail完全指南 &#x1f680; 【免费下载链接】BillionMail Billion Mail is a future open-source email marketing platform designed to help businesses and individuals manage their email campaigns with ease 项…...

这个网站,我愿称之为生信云平台天花板

刚入门生信的你&#xff0c;是否也曾被这些问题折磨得想摔键盘&#xff1f;• Linux 环境配置&#xff1a;conda install 报错到怀疑人生&#xff0c;环境冲突让你原地崩溃。• 硬件瓶颈&#xff1a; 实验室服务器要排队&#xff0c;自己的轻薄本跑个比对就能当暖气片。• 代码…...

2026年3月房产中介房源管理系统使用体验评测

在房产中介行业数字化转型的浪潮中&#xff0c;一款合适的房产中介房源管理系统能帮助经纪人高效处理房客源、规范业务流程、降低运营成本&#xff0c;甚至直接提升成交率。本文基于一线实操体验&#xff0c;对4款主流房产中介房源管理软件进行客观评测&#xff0c;包括全房源系…...

从MP3到微信语音:一份完整的Java音频格式转换工具链搭建指南(附FFmpeg与silk_v3_encoder配置)

Java音频处理实战&#xff1a;构建MP3到微信语音的高效转换工具链 引言 在即时通讯应用开发中&#xff0c;音频消息的处理一直是技术难点之一。特别是当我们需要将常见的MP3格式转换为微信、QQ等平台专用的SILK编码格式时&#xff0c;开发者往往需要跨越多个技术环节。本文将带…...

ESP32-Bus-Pirate:多功能硬件协议分析工具开发指南

ESP32-Bus-Pirate&#xff1a;多功能硬件协议分析工具开发指南1. 项目概述1.1 系统架构ESP32-Bus-Pirate是基于ESP32平台开发的多协议硬件调试工具&#xff0c;采用模块化分层设计架构。系统包含四个主要层次&#xff1a;用户交互层&#xff1a;支持USB串口终端、WiFi网页终端和…...