2016-02-11 6 views
5

このエラーはPyQt5で発生していますが、QTextEditを使用する場合にのみこのエラーが発生すると思います。私はQTextEditの代わりにQLineEditを使ってみましたが、問題なく動作しました。 QTextEditを使用してプログラムを開くと、そのエラーが発生し、プログラムが非常に遅くなります。エラー:(python:4843): Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion 'GTK_IS_WIDGET (widget)' failedPyQt5:Gtk-CRITICAL **:IA__gtk_widget_style_get:アサート 'GTK_IS_WIDGET(widget)'が失敗しました

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

答えて

6

この問題の解決方法が見つかりました。 アプリケーションのスタイルを変更してもエラーは表示されず、すべて正常に動作しました。

修正されたコード:

if __name__ == '__main__': 

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

ここでスタイルの詳細を:エラーなしの下で正常に動作ipython3から非常に単純なPyQt4テストアプリケーションを実行しているときに私はのGtk-CRITICALの膨大な数を持って

+0

http://doc.qt.io/qt-5/gallery.htmlスタンドアロンのpython3。 app.setStyle( "fusion")を追加すると、ipython3でもこれらのエラーがすべて削除されました。ヒントありがとうございます。 – vleo

関連する問題