2017-09-17 6 views
0

J'essaie de créer une application en utilisant PyQt5, mais chaque fois que j'essaie d'incorporer un QOpenGLWidget (ou une classe dérivée), mon application se fige (la barre de titre de Windows indique «Ne répond pas»). Voici un programme complet démontrant le problème. Lorsque j'ai défini show_gl_widget sur True, l'application lancée se bloque.Comment utiliser QOpenGLWidget dans PyQt5 sans geler l'application lors du lancement à partir de PyCharm IDE?

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_()) 

Je rencontre ce problème sur Windows 10, en utilisant 64 bits python 3.6.2. Je n'ai pas essayé d'autres environnements.

EDIT: Le programme s'exécute correctement pour moi lorsque je l'exécute à partir de la ligne de commande, mais pas lorsque je cours à partir de l'IDE PyCharm. Pourquoi l'application gèlerait-elle lors de l'exécution de l'IDE PyCharm?

+0

Je l'ai testé sous Linux et fonctionne correctement, vous pouvez l'exécuter via cmd pour voir s'il génère un message d'erreur, vous pouvez également expliquer comment vous avez installé pyqt5. – eyllanesc

+0

ma sortie: https://imgur.com/a/pGF9B – eyllanesc

+0

@eyllanesc J'ai installé pyqt5 par "pip3 install pyqt5". Je pense que je me souviens que pip a installé une roue binaire, plutôt que d'effectuer une construction complète. –

Répondre

0

Une réponse s'avère être "glisser pycharm vers votre autre moniteur".

J'utilise deux moniteurs avec un bureau étendu. J'utilisais l'IDE PyCharm sur mon moniteur secondaire, dans la moitié droite de mon bureau étendu lorsque j'ai observé ce problème. Si je lance l'application à partir du second moniteur, que ce soit à partir de PyCharm, Eclipse ou de la ligne de commande, l'application se bloque. Si j'utilise l'une de ces méthodes pour lancer depuis le moniteur de gauche, l'application fonctionne correctement.

Je suppose qu'il s'agit d'un bug de PyQt5/QOpenGLWidget. PyCharm n'est pas à blâmer ici.