PyQt4示例使用IDLE,但不是从npp执行时

时间:2013-05-05 20:07:41

标签: python pyqt notepad++ nppexec

我在PyQt4中运行一个非常基本的例子。如下所示。我正在努力使用Enthought Canopy安装,在cygwin Python实现中苦苦挣扎,最后一次只安装了Python 2.7,Numpy 1.7.1,MatPlotLib 1.2.0。

当我从IDLE执行示例时,它工作正常。虽然当我尝试使用nppExec从Notepad ++执行它时,控制台窗口就会挂起。我没有看到任何地方弹出一个小空窗口,也没有给出任何错误代码。

  • 我尝试了nppExec(-i)的交互模式和非交互模式
    • 我的nppExec命令是python "$(FULL_CURRENT_PATH)"
  • 我尝试从函数定义中提取出代码的内容并自行运行,同样的事情。

  • Python 2.7.4
  • notepad ++ 6.3.2
  • PyQt4 4.10.1

    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('Brian')
        w.show()
    
    sys.exit(app.exec_())
    
    
    if __name__ == '__main__':
        main()
    

2 个答案:

答案 0 :(得分:1)

在NppExec中,使用命令

CMD /C python -u "$(FULL_CURRENT_PATH)"

而不是

python "$(FULL_CURRENT_PATH)"

答案 1 :(得分:0)

我有同样的问题。 使用w.showMaximized()而不是w.show()解决了我在Notepad ++中没有显示窗口的问题。可以使用w.show()打开后续打开的小部件。

但是,你的代码对我不起作用,我得到了一个Python回溯。相反,我使用(与PySide):

import sys
from PySide import QtGui

app = QtGui.QApplication(sys.argv)

def main():

    w = QtGui.QWidget()
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('Brian')
    w.showMaximized()
    app.exec_()


if __name__ == '__main__':
    main()

而且,作为解决方法,只需在调用w.resize(width, height)后添加w.showMaximized()之类的内容,即可将窗口大小调整为目标大小。