2016-02-11 31 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:assertion'GTK_IS_WIDGET(widget)'failed

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

更多款式在這裏:http://doc.qt.io/qt-5/gallery.html

+0

我跑從ipython3很簡單PyQt4的測試應用程序,運行罰款在沒有錯誤時,得到了GTK的臨界數量巨大獨立的python3。添加app.setStyle(「fusion」)也會在ipython3下移除所有這些錯誤。謝謝你的提示。 – vleo