2016-02-11 29 views
5

Ho ricevuto questo errore con PyQt5 e penso di ottenere questo errore solo quando utilizzo QTextEdit. Ho provato a usare QLineEdit al posto di QTextEdit e ha funzionato senza problemi. Usando QTextEdit quando apro il programma ottengo quell'errore e il programma gira molto lentamente. Errore: (python:4843): Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion 'GTK_IS_WIDGET (widget)' failedPyQt5: Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion 'GTK_IS_WIDGET (widget)' non riuscito

import sys 
from PyQt5.QtWidgets import (QWidget, QLabel, QLineEdit, 
    QTextEdit, QGridLayout, QApplication) 


class Example(QWidget): 

    def __init__(self): 
     super(Example, self).__init__() 

     self.initUI() 


    def initUI(self): 

     title = QLabel('Title') 
     author = QLabel('Author') 
     review = QLabel('Review') 

     titleEdit = QLineEdit() 
     authorEdit = QLineEdit() 
     reviewEdit = QTextEdit() 

     grid = QGridLayout() 
     grid.setSpacing(10) 

     grid.addWidget(title, 1, 0) 
     grid.addWidget(titleEdit, 1, 1) 

     grid.addWidget(author, 2, 0) 
     grid.addWidget(authorEdit, 2, 1) 

     grid.addWidget(review, 3, 0) 
     grid.addWidget(reviewEdit, 3, 1, 5, 1) 

     self.setLayout(grid) 

     self.setGeometry(300, 300, 350, 300) 
     self.setWindowTitle('Review') 
     self.show() 


if __name__ == '__main__': 

    app = QApplication(sys.argv) 
    ex = Example() 
    sys.exit(app.exec_()) 

risposta

6

Ho trovato una soluzione per questo problema. La modifica dello stile dell'applicazione non ha mostrato l'errore e tutto ha funzionato correttamente.

codice corretto:

if __name__ == '__main__': 

    app = QApplication(sys.argv) 
    app.setStyle("fusion") #Changing the style 
    ex = Example() 
    sys.exit(app.exec_()) 

più su stili qui: http://doc.qt.io/qt-5/gallery.html

+0

ho avuto enorme numero di Gtk-critico quando in esecuzione molto semplice applicazione di test PyQt4 da ipython3, che funziona bene senza errori sotto standalone python3. L'aggiunta di app.setStyle ("fusion") ha rimosso tutti questi errori anche in ipython3. Grazie per il suggerimento. – vleo