1

我正在尝试通过 Notepad++ 运行一个 pyqt4 示例。我之前问过这个问题(运行 PyQt4 示例代码时什么都没有发生),最终卸载了 Enthought Canopy 和 python 的所有残余并安装了 cygwin。现在,当我运行示例代码时,我从 npp 的控制台收到以下错误。nppExec 命令 --> C:\cygwin\bin\python2.7.exe -i "$(FULL_CURRENT_PATH)"。示例代码一直显示在底部。

我能得到的最接近的是启动 cygwin x(从 bash shell 键入 startx),我可以在其中显示示例窗口,尽管我无法退出窗口。

我觉得我在这里不知所措,我只想创建一些简单的 GUI,我正在努力让一个例子工作。Cygwin的python安装是否缺少经典的IDLE?

C:\cygwin\bin\python2.7.exe -i "C:\Users\Brian\Dropbox\Python\PYqt_practice.py"
Process started >>>
cygwin warning:
  MS-DOS style path detected: C:\Users\Brian\Dropbox\Python\PYqt_practice.py
  Preferred POSIX equivalent is: /cygdrive/c/Users/Brian/Dropbox/Python/PYqt_practice.py
  CYGWIN environment variable option "nodosfilewarning" turns off this warning.
  Consult the user's guide for more details about POSIX paths:
    http://cygwin.com/cygwin-ug-net/using.html#using-pathnames
C:\Users\Brian\Dropbox\Python\PYqt_practice.py: cannot connect to X server 
<<< Process finished. (Exit code 1)
================ READY ================

PyQt4 示例代码

import sys
from PyQt4 import QtGui


def main():

    app = QtGui.QApplication(sys.argv)

    w = QtGui.QWidget()
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('Simple')
    w.show()

    sys.exit(app.exec_())


if __name__ == '__main__':
    main()
4

1 回答 1

0

与 Cygwin 一起安装的 PyQT4 和 PyQT5 直接模拟了它们等效的 Linux 软件包的功能,这意味着它们确实希望您运行 X 服务器。专用于 Windows 的软件包显然没有。

基本上你有两个选择:

  1. 放弃 Cygwin 并使用专用于 Windows 的软件包,不需要 X 服务器。(您也可以在 Cygwin 环境中运行非 Cygwin python,但这会让您有些头疼,例如使用 Unicode。)
  2. 像这样为 Cygwin 安装 X 服务器:

    1. 获取xorg-server包裹
    2. startx

    如果这会给您带来问题,请尝试:

    1. 运行xwin -multiwindow而不是startx

    现在,您的托盘中应该会出现一个图标。

    1. 用鼠标右键单击它
    2. 悬停到“应用程序”
    3. 单击xterm

    恭喜!您刚刚xterm在 X 环境中运行了一个 shell。看看您的应用程序现在是否有效。

于 2015-05-04T07:45:30.090 回答