我在Ubuntu 18.04上使用PyQt5和IPython 7.3.0。我正在从ipython
控制台加载此微小的Python模块,该控制台通过--gui=qt5
开关或外壳启动后执行的%gui qt5
调用。无论哪种情况,它都会显示一个黑色窗口。是IPython的错误,还是我缺少了什么?
from PyQt5.QtWidgets import QApplication, QWidget
class Viewer(QWidget):
def __init__(self, text):
super().__init__()
self.setWindowTitle('Viewer')
self.show()
def view_from_ipython():
ex = Viewer('Hello')
import time; time.sleep(5)
上面的模块被命名为demo.py
。
$ ipython --gui=qt5
Python 3.6.7 (default, Oct 22 2018, 11:32:17)
Type 'copyright', 'credits' or 'license' for more information
IPython 7.3.0 -- An enhanced Interactive Python. Type '?' for help.
In [1]: import demo
In [2]: demo.view_from_ipython()
它显示一个黑色的窗口,如下所示。
更新1:
我忘了提到我要以非模式方式显示窗口,这意味着弹出的窗口不应禁止用户与ipython会话进行交互。到目前为止指出的解决方案阻止了交互式会话。我想使它的行为与matplotlib
图的绘制工作相同(只是给出一个想法)。