python - PyQt5 未检测到 Cosmographia 窗口(Cosmoscripting 导入)
问题描述
我正在尝试使用 Cosmographia 脚本来创建太空探测器飞过太阳系的视频,但脚本工具似乎不起作用。我在将最新Cosmographia版本(4.0 版)的 cosmoscripting 包导入 python 时遇到问题。
我认为问题可能与 PyQt5 库有关,但我以前从未真正使用过这个库。
这里是 cosmoscripting.py 代码的开头
#import pyqt and swig wraper modules
from PyQt5.QtGui import *
from PyQt5 import QtCore as qtcore
from PyQt5.QtWidgets import QApplication
import time
# Find the scripting API object with its name in QT
widgets = QApplication.topLevelWidgets()
for widget in widgets:
n = widget.objectName()
if n == 'mainWindow':
mainWindow = widget
children = mainWindow.children() #This is where it crashes
for child in children:
n = child.objectName()
if n == 'scriptingApi':
api = child
导入在第 13 行崩溃,因为该函数QApplication.topLevelWidgets()
返回一个空列表。Exception has occurred: NameError name 'mainWindow' is not defined
我认为这里发生的事情是导入试图找到要使用的 Cosmographia 窗口,但由于某种原因 PyQt5 库没有看到它。
有没有人遇到过类似的问题?你知道如何打开一个程序让 PyQt5/Qt 检测到它吗?
解决方案
宇宙脚本脚本只能从程序中执行。
顶部菜单:菜单栏 > 文件 >运行脚本
事实证明,Windows 版本的 Cosmographia 4.0 中缺少运行脚本选项。但是,在 Linux 上运行脚本是可行的。
推荐阅读
- c - C中的struct和free()
- python-3.x - 如何根据条件替换 DataFrame/Series 中的行值?
- amazon-web-services - IAM 用户安全凭证未反映在 AWS 凭证文件中
- c# - VS 代码自动完成在另一个脚本中不起作用
- php - WordPress 主题上传失败并在 AWS LightSail 上出现错误
- android - Flutter 构建返回“无法找到构建工具修订版 28.0.3”
- javascript - 如何更改输入类型日期的默认行为,允许我们在年份中输入 6 位数字而不是 4 位数字?只使用火狐
- python - 使用不同的字符串格式对日期时间对象列表进行排序
- ios - 如何足够准确地同步两个音乐序列(Audiokit.AKAppleSequencer)?
- javascript - 数据百分比属性值更改