首页 > 解决方案 > 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 检测到它吗?

标签: pythonqtpyqt5importerror

解决方案


宇宙脚本脚本只能从程序中执行。

顶部菜单:菜单栏 > 文件 >运行脚本

事实证明,Windows 版本的 Cosmographia 4.0 中缺少运行脚本选项。但是,在 Linux 上运行脚本是可行的。


推荐阅读