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?
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
ma sortie: https://imgur.com/a/pGF9B – eyllanesc
@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. –