【问题标题】:Unable to Launch Qt uic无法启动 Qt uic
【发布时间】:2012-12-09 22:25:21
【问题描述】:

我已经安装了 Qt Designer 4.8.2、Pyside 和 Python 3.3。当我使用 Qt 设计器创建表单时,单击查看代码时看不到代码。错误消息是:“无法启动 C:\Qt\4.8.2\bin\uic”。 我在 C:\Python33\Lib\site-packages\PyQt4\uic 下有 pyuic。请帮忙。

【问题讨论】:

  • 看起来该路径已硬连接到 Qt 设计器中。我通常只是设置一个调用uic的Makefile,所以你不需要使用Designer来查看你生成的代码。

标签: python-3.x qt4 pyside


【解决方案1】:

只需创建一个目录,在其中搜索 uic.exe 文件并将现有的 uic.exe 文件复制到该目录。

我的例子: 当我单击查看代码时,它显示错误,要求在路径中输入文件 uic.exe C:\python374\Lib\site-packages\pyqt5_tools\Qt\bin\bin

但我发现 uicexe 文件位于 C:\python374\Lib\site-packages\pyqt5_tools\Qt\bin 文件夹中 所以我创建了另一个 bin 文件夹并将 uic.exe 复制到该文件夹​​中。这解决了我的问题。

【讨论】:

    【解决方案2】:

    虽然您当然可以使用 Qt Designer 为 PySide/PyQt 创建 UI,但您应该知道它主要是一个 C++ 工具——它没有任何对 Python 的内置支持。因此,您所指的“查看代码...”命令只会生成 C++ 代码——如果您打算使用 PySide 或 PyQt,这可能对您没有多大用处。

    Qt Designer UI 文件采用 XML 格式(它们通常具有 .ui 扩展名)。

    要将它们与 Python 一起使用,基本上有两种选择:

    1. 将 .ui 文件直接加载到您的应用程序中。
    2. 使用外部工具将 .ui 文件转换为 Python 模块。

    PySide 和 PyQt 在这两个选项的实现方式上有几个不同之处。

    对于 PyQt,两个选项的完整文档可以在 here 找到。

    对于 PySide,选项 1 的文档可以在 here 找到 - 但看起来没有选项 2 的任何文档。但是,PySide 的外部工具(称为 pyside-uic)的工作方式非常相似到 PyQt 的那个(称为 pyuic4)。

    如果您需要更多关于如何开始使用 Qt 和 Python 的一般信息,请尝试PySide WikiPyQt Wiki

    【讨论】:

    • +1 用于强调 Qt Designer 针对 C++ 项目的区别。我只用它来做复杂的布局,或者只是视觉头脑风暴。在进行 PyQt/PySide 项目时,应该忽略大多数功能。只需使用它来进行布局并保存 ui 和/或资源文件。
    • 谢谢!我能够从 ui 文件生成 py 文件。但是,当我运行生成的 python 代码时,出现以下错误。我似乎对文档字符串有问题??非常感谢。 text, filename = doctest._load_testfile(filename, None, False, "utf-8")File "C:\Python33\lib\doctest.py", line 223, in _load_testfile return f.read(), filename File "C :\Python33\lib\codecs.py",第 300 行,在 decode(result,consumed) = self._buffer_decode(data, self.errors, final) UnicodeDecodeError: 'utf-8' codec can't decode byte 0x90 in position 2:无效的起始字节
    • @user1890223。由于您的 pyuic 问题已经解决,请针对 doctest 问题开始一个新问题。 (PS:如果你觉得有帮助,也请accept这个答案)。
    【解决方案3】:

    如果您希望生成 python 代码,您可以从控制台执行此操作。因此,如果您将程序中的文件保存为“无标题”(默认),请运行以下命令:

     pyuic5 -m untitled.ui -o untitled.py
    

    确保您的工作目录是“untitled.ui”的文件位置。然后它将 untitled.py 吐到同一个地方。

    【讨论】:

      【解决方案4】:

      在文件夹内创建一个名为bin的文件夹,并将exe移动到uic.exe中。点击QT设计器查看代码时显示代码。

      【讨论】:

        【解决方案5】:

        制作

        表单 -> 查看代码

        工作,直接从 Qt Designer 使用 Qt4 或 Qt5,您可以从 Qt Designer 正在寻找的位置创建一个符号链接,指向您的 pyuic5.exe 可执行文件是。以您的示例为例,它将是:

        mklink /H "C:\Qt\4.8.2\bin\uic.exe" "C:\Python33\Lib\site-packages\PyQt4\pyuic4.exe"
        

        即:

        mklink /H "Path\to\uic.exe\file\Qt\designer\is\looking\for" "Path\to\actual\location\of\pyuic4.exe\or\pyuic5.exe\file"
        

        确保“C:\Qt\4.8.2\bin\uic.exe”所在的文件夹明显存在。

        【讨论】:

          【解决方案6】:

          适用于 Linux 计算机

          如果有人仍然遇到这个问题,而你正在使用 Linux。

          您可以在venv-path/python3.x/site-packages/PySide2/uic找到所需的uic文件 复制此文件,并在 Qt 文件夹内创建一个新文件夹 binvenv-path/python3.x/site-packages/PySide2/Qt/bin

          现在将uic 文件放在那里,这样,最终的uic 路径是: venv-path/python3.x/site-packages/PySide2/Qt/bin/uic

          注意:

          • venv-path 是你的 python 虚拟环境的路径。
          • 3.x 是虚拟环境中合适的 Python 版本。 (在我的情况下是 3.8)

          最终结果:

          【讨论】:

            猜你喜欢
            • 2017-06-06
            • 1970-01-01
            • 2017-02-15
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多