Python QT(PySide)QPushButton样式表导致“断言'GTK_IS_WIDGET(窗口小部件)'失败”错误

时间:2014-10-16 01:52:33

标签: python qt gtk pyside

每当我尝试将样式表应用于QPushButton时,我都会收到错误:

(python:21347): Gtk-CRITICAL **: IA__gtk_widget_get_direction: assertion 'GTK_IS_WIDGET (widget)' failed". 

错误出现两次,但程序运行正常,样式表似乎已正确应用。这是仍然产生错误的最小代码:

import sys
from PySide import QtGui

if __name__ == "__main__":
    app = QtGui.QApplication(sys.argv)
    wid = QtGui.QWidget()
    layout = QtGui.QVBoxLayout()
    button = QtGui.QPushButton("Button")
    button.setStyleSheet("QPushButton { color: black }")
    layout.addWidget(button)
    wid.setLayout(layout)
    wid.show()

    sys.exit(app.exec_())

注释掉button.setStyleSheet会消除错误消息。如果它有所作为,我会使用repo中的库在Xubuntu 13.10下运行它。

这个错误显然不是一个严重的问题,因为代码运行正常,没有问题,但我真的想摆脱错误信息!

1 个答案:

答案 0 :(得分:5)

它似乎特定于您的平台。有许多错误报告具有相同的错误。但是尝试为您的应用设置cleanlooks样式。像这样:

app = QtGui.QApplication(sys.argv)
#QCleanlooksStyle
app.setStyle('cleanlooks')

或使用命令行:

./myapp -style cleanlooks