2017-09-17 2 views
0

PyQt5を使用してアプリケーションを作成しようとしていますが、QOpenGLWidget(または派生クラス)を組み込むときは、アプリケーションがフリーズします(Windowsのタイトルバーには「応答していません」と表示されます)。以下は、この問題を示す完全なプログラムです。 show_gl_widgetTrueに設定すると、起動したアプリがフリーズします。PyCht IDEでQOpenGLWidgetを使用するにはどうすればいいですか?

import sys 

from PyQt5.QtWidgets import QApplication, QMainWindow, QOpenGLWidget, QHBoxLayout, QWidget, QLabel 

app = QApplication(sys.argv) 
main_window = QMainWindow() 
central_widget = QWidget(parent=main_window) 
main_window.setCentralWidget(central_widget) 
layout = QHBoxLayout() 
show_gl_widget = False # Set show_gl_widget to True to see the problem 
if show_gl_widget: # Window shows, but hangs with "Not responding" this way 
    gl_widget = QOpenGLWidget(parent=main_window.centralWidget()) 
    layout.addWidget(gl_widget) 
else: # Works OK this way 
    label = QLabel(parent=main_window.centralWidget(), text='Hey!') 
    layout.addWidget(label) 
main_window.centralWidget().setLayout(layout) 
main_window.show() 
sys.exit(app.exec_()) 

64ビットのPython 3.6.2を使用してWindows 10でこの問題が発生しています。私は他の環境を試していません。

EDIT:PyCharm IDEから実行したときにプログラムを実行すると正しく動作しますが、コマンドラインから実行すると正しく動作します。なぜPyCharm IDEから実行するとアプリケーションがフリーズしますか?

+0

私はlinuxでこれをテストして正しく動作していますが、cmdで実行してエラーメッセージが表示されるかどうか、またpyqt5のインストール方法についても説明できます。 – eyllanesc

+0

私の出力:https://imgur.com/a/pGF9B – eyllanesc

+0

@eyllanesc "pip3 install pyqt5"でpyqt5をインストールしました。私はピップが完全なビルドを実行するのではなくバイナリホイールをインストールしたことを覚えていると思います。 –

答えて

0

「pycharmを他のモニタにドラッグする」という回答が1つあります。

私は2台のモニタを拡張デスクトップで使用します。私はこの問題を観察したとき、拡張デスクトップの右半分に、私のセカンダリモニタでPyCharm IDEを使用していました。 PyCharm、Eclipse、またはコマンドラインのどちらからでも、2番目のモニターからアプリを起動すると、アプリがフリーズします。これらの方法のいずれかを左のモニタから起動すると、アプリケーションは正常に実行されます。

これはPyQt5/QOpenGLWidgetのバグだと思われます。 PyCharmはここで責めません。

関連する問題