- 浏览: 205328 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
悲梦天下:
楼主,有些视频到一半就没声音了,怎么破!!!
python视频教程 更新22(完) -
schi:
啊,我太傻了,都想到使用uv了,可以有更简单的方法,只要把uv ...
Get Reversed Normal Faces(获取反法线面) [原理] -
schi:
相对Pillow和PySide而言,显示图片opengl就显得 ...
display an image with pyopengl and Pillow -
schi:
我也是今天才偶然想到的,我以后可能用不着了,所有分享给有需要的 ...
Get Reversed Normal Faces(获取反法线面) [原理] -
baiyanbin:
支持楼主原创,关注楼主博客有一阵子了,国内认真认真搞技术的太少 ...
python视频教程 更新22(完)
在python_inside_maya中看到的一个简单的PyQt例子,我已经加入注释希望对大家有帮助。
如下图,点击Refresh按钮会将maya中所选的物体添加到列表中,如没选择任何物体则清空列表。
使用方法:
将qtExampleUI.py和pumpThread.py文件放到以下路径中
在maya的脚本编辑器中的python面板中执行
qtExampleUI.py
pumpThread.py
如下图,点击Refresh按钮会将maya中所选的物体添加到列表中,如没选择任何物体则清空列表。
使用方法:
将qtExampleUI.py和pumpThread.py文件放到以下路径中
引用
C:/Documents and Settings/你的用户名/My Documents/maya/2008/prefs/scripts
C:/Documents and Settings/你的用户名/My Documents/maya/scripts
C:/Documents and Settings/你的用户名/My Documents/maya/scripts
在maya的脚本编辑器中的python面板中执行
import qtExampleUI qtExampleUI.ExampleUI.Display() # import qtExampleUI as qeui # qeui.ExampleUI.Display()
qtExampleUI.py
# -*- coding: UTF-8 -*- from PyQt4 import QtCore, QtGui import maya.cmds as cmds import pumpThread # UI class class ExampleUI( QtGui.QDialog ): def __init__( self, parent=None ): super( ExampleUI, self ).__init__( parent ) # Set some basic properties on the UI # 设置UI的基本属性 self.setWindowTitle( 'ExampleUI' ) self.setObjectName( "ExampleUI" ) self.setAttribute( QtCore.Qt.WA_DeleteOnClose ) # Add a Layout and set it to the UI # 添加一个Layout(布局)并设置到UI中 self.mainLayout = QtGui.QVBoxLayout( self ) self.setLayout( self.mainLayout ) # Add a Button and set some properties. # Also add it to a layout. # 添加一个按钮并设置一些属性 # 同时将它添加到layout中 self.RefreshButton = QtGui.QPushButton() self.RefreshButton.setText( "Refresh" ) self.mainLayout.addWidget( self.RefreshButton ) # Add a list and set it to the layout # 添加一个列表并将它添加到layout中 self.SelectionList = QtGui.QListWidget() self.SelectionList.setMinimumSize( 250, 250 ) self.mainLayout.addWidget( self.SelectionList ) # Connect the Refresh Button to a function to populate the list # using SIGNAL's # 给Refresh按钮连接信号 # 当按钮被点击,会调用_RefreshButtonFunc方法 self.connect( self.RefreshButton, QtCore.SIGNAL( "clicked()" ), self._RefreshButtonFunc ) # 将maya中选择的物体添加到列表中的方法 def _RefreshButtonFunc( self ): ''' Fill the list based on a maya selection ''' oSel = cmds.ls( sl=1 ) if oSel: self.SelectionList.clear() for i in oSel: self.SelectionList.addItem( i ) #[self.SelectionList.addItem(s) for s in oSel] else: self.SelectionList.clear() @staticmethod def Display(): ''' calls the window. Typical PumpThread call Use's a modified pumpThread that properly set's up the thread. ''' # We need a global to stop python gc the UI global mainWindow # We need pumpThread to make the UI responsive # 我们需要 pumpThread来让UI有回应 pumpThread.initializePumpThread() app = pumpThread.get_app() if app: # We can set the app to use a nice style # 我们可以设置一个好看的样式 app.setStyle( 'Plastique' ) mainWindow = ExampleUI() mainWindow.show() #ExampleUI.Display()
pumpThread.py
########################### from PyQt4 import QtCore, QtGui import maya.utils as utils import sys import time import threading import maya.cmds as cmds pumpedThread = None app = None gPump = True def get_app(): global app return app def set_app( i_app ): global app testAppInstance = QtCore.QCoreApplication.instance() if testAppInstance: app = testAppInstance else: app = i_app def get_pt(): global pumpedThread return pumpedThread def set_pt( i_pt ): global pumpedThread pumpedThread = i_pt def pumpQt(): global app global gPump processorEv = threading.Event() def processor(): app.processEvents() processorEv.set() while gPump: utils.executeDeferred( processor ) processorEv.wait() processorEv.clear() time.sleep( 0.01 ) def killProcess(): global gPump gPump = False def killPumpThread(): if get_app(): get_app().closeAllWindows() if get_pt(): while get_pt().isAlive(): killProcess() set_pt( None ) set_app( None ) def initializePumpThread(): global gPump gPump = True if get_pt() == None: set_app( QtGui.QApplication( sys.argv ) ) set_pt( threading.Thread( target=pumpQt, args=() ) ) get_pt().start()
评论
1 楼
jonike
2009-11-26
呵呵,你把pumpThread.py 扩展了一下下,厉害啊.
有个问题想问问你,怎么将Qt窗口加入的maya中成为她的child子窗口,现在为这苦恼呢.
QQ:280032474
有个问题想问问你,怎么将Qt窗口加入的maya中成为她的child子窗口,现在为这苦恼呢.
QQ:280032474
发表评论
-
uv重叠(uv overlap)
2014-06-28 22:28 5358两年多前我需要解决uv重叠的问题,当时觉得是一个挺有挑 ... -
dx11 Shaders for maya
2014-06-09 17:48 2172我准备花点时间来弄点d ... -
Maya plugin with OpenCL C++ example
2014-04-23 12:19 3203GPU, Python and Maya使用的是python和 ... -
cmdReporterHighlighter
2014-01-19 19:30 890A syntaxhighlighter I wrote ... -
那条线代表什么
2013-11-07 12:32 1258好几个月前我问了前同事一个问题:那条线代表什么? 同事在玩 ... -
Add MEL syntax highlighting for expression editor[给表达式编辑器添加mel的高光显示]
2013-08-30 18:16 1958I don't use mel for years. But ... -
GPU, Python and Maya
2013-06-27 17:32 3144Here an example how to use pyop ... -
mentalray cause maya2012 crash on standalone mode
2013-03-28 20:27 1085如果你想使用maya2012和python来做些批处理,你就要 ... -
sierpinski triangle 2d maya plug-in(with python API 2.0)
2012-11-07 16:55 2343因为python API 2.0可用的类很少,OpenMaya ... -
sierpinski triangle 2d in maya(with python API 2.0)
2012-10-22 20:41 2030在国庆前我刚好完成手上的工作,有两三天的空闲,于是就去 ... -
mel,cmds,python API哪个更快?
2012-09-13 14:37 3958昨天偶然的跟同事谈论 ... -
Maya Python API 2.0 - MGlobal
2012-08-31 18:07 2313MGlobal是一个静态类,提供通用的API涵数. 包括获取m ... -
Get Reversed Normal Faces(获取反法线面)
2012-08-20 18:34 1760这不是一个教程,这是 ... -
我讨厌给UI起名字,也懒得起名字
2012-07-05 14:35 1366从我开始给Maya开发UI工具的时候起就觉得给窗口起名是件麻烦 ... -
算法(algorithm) 101
2012-07-02 23:01 1173在Maya中实现深度/广度优先搜索算法 Depth-First ... -
使用Visual C++ 2010 Express来开发Maya x64插件
2012-07-02 22:57 4980Visual C++ 2010 Express是微 ... -
(Get Maya Main Window for PyQt4/PySide)为PyQt4/PySide获取Maya的主窗口
2012-07-02 22:47 1816我们都知道Maya的主窗口保存在mel的全局变量$gMainW ... -
cache from command line
2010-12-15 16:46 926使用命令行来计算cache,这个脚本我已经不记得是什么 ... -
给nDynamics节点赋予随机的碰撞颜色
2010-12-03 17:08 1538在maya中使用nDynamic模块时,场景中的nDyna ... -
maya standalone script
2010-08-05 21:53 1545有时候我希望不需要运行maya也能完成我在maya里面的工作, ...
相关推荐
资源分类:Python库 所属语言:Python 资源全名:QT-PyQt-PySide-Custom-Widgets-0.1.8.tar.gz 资源来源:官方 安装方法:https://lanzao.blog.csdn.net/article/details/101784059
基于Python-PyQt5饭卡管理系统.zip基于Python-PyQt5饭卡管理系统.zip 基于Python-PyQt5饭卡管理系统.zip基于Python-PyQt5饭卡管理系统.zip 基于Python-PyQt5饭卡管理系统.zip基于Python-PyQt5饭卡管理系统.zip 基于...
【资源说明】 1、该资源包括项目的全部源码,下载可以直接使用! 2、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为...基于Python-PyQt5的饭卡管理系统源码+详细注释+数据库.zip
基于Python-PyQt5的饭卡管理系统源码+详细注释+数据库.zip 基于Python-PyQt5的饭卡管理系统源码+详细注释+数据库.zip 基于Python-PyQt5的饭卡管理系统源码+详细注释+数据库.zip 基于Python-PyQt5的饭卡管理系统源码+...
yolov8-pyqt5实现精美界面支持图片视频和摄像检测源码第四套.zipyolov8-pyqt5实现精美界面支持图片视频和摄像检测源码第四套.zipyolov8-pyqt5实现精美界面支持图片视频和摄像检测源码第四套.zipyolov8-pyqt5实现精美...
yolov5垃圾检测模型,有pyqt界面;yolov5垃圾检测模型+有pyqt界面yolov5-pyqt5-garb_dataset.zip;yolov5垃圾检测模型+有pyqt界面yolov5-pyqt5-garb_dataset.zip;yolov5垃圾检测模型+有pyqt界面yolov5-pyqt5-garb_...
1. **源代码**:包括Python脚本,展示了如何使用PyVLC或pyqtvlc与VLC交互,以及如何构建PyQt5 GUI来展示IP摄像头的视频流。 2. **配置文件**:可能包含VLC或IP摄像头的配置信息,如网络地址、端口、认证凭证等。 3. ...
python,PyQt Examples——PyQt5、PyQt4各种测试和例子(高分项目)个人经导师指导并认可通过的98分大作业设计项目,适用人群:计算机,电子信息工程、数学等专业的大学生课程设计、期末大作业或毕业设计,作为...
1. **QObjects与信号与槽机制**:PyQT4基于Qt库的QObject类,所有GUI组件都继承自这个类。QObject类引入了信号和槽的概念,这是PyQT4事件处理的关键。信号是对象状态改变时发出的通知,而槽是响应这些信号的函数。...
在IT行业中,PyQT5是一个强大的图形用户界面(GUI)工具包,它是Python语言与Qt库的结合。本文将深入探讨PyQT5如何用于串口通信、UDP通信以及网络编程,以此来理解"tcp_udp_web_tools-pyqt5-master_pyqt5串口_pyqt5...
官方离线安装包,亲测可用
基于Python-PyQt5的饭卡管理系统源码+详细注释+数据库,含有代码注释,新手也可看懂,个人手打98分项目,导师非常认可的高分项目,毕业设计、期末大作业和课程设计高分必看,下载下来,简单部署,就可以使用。...
01 - Intro basic GUI - PyQt with Python GUI Programming tutorial.mp4 02 - Application Structure - PyQt with Python GUI Programming tutorial.mp4 03 - Buttons - PyQt with Python GUI Programming tutorial...
51CTO下载-PyQt4入门指南.pdf, 简单明了学习pyqt4
PyQt5-PyQt-master.zip 是一个包含PyQt5库源码和相关资源的压缩包。PyQt是一个用于Python的图形用户界面(GUI)开发工具包,它将Qt库的功能带入了Python世界。Qt库是由Trolltech(现为The Qt Company)开发的C++框架...
**PyQt5与QtDesigner简介** PyQt5是Python编程语言的一个模块,它提供了一种在Python中使用Qt库的方式。Qt是一个跨平台的应用程序开发框架,广泛用于创建图形用户界面(GUI)。PyQt5使得Python程序员能够利用Qt库的...
本项目“python聊天室---pyqt5+socket+Thread聊天室”旨在教授如何利用Python的PyQt5库创建一个聊天室应用,并通过Socket进行网络通信,同时采用多线程(Thread)来实现后台任务的异步执行。以下将详细解析这个项目的...
1-Python-PyQt5