Gtk-CRITICAL **:IA__gtk_widget_style_get:断言`GTK_IS_WIDGET(widget)'失败

时间:2013-01-30 14:29:57

标签: qt ubuntu build widget gtk

在我的qt应用程序的静态构建之后

./configure -static -debug-and-release  -confirm-license -nomake demos -nomake examples -nomake tools 

它工作正常,但我得到几个输出消息大喊:

(MyApplication:32030): Gtk-CRITICAL **: IA__gtk_widget_style_get: assertion `GTK_IS_WIDGET (widget)' failed

是否真的存在严重问题,我是否应该使用不同的选项重建qt?

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:11)

这有点晚了,但希望能在一段时间内拯救别人。

对我来说,错误是由两件事组合引起的:QCleanlooksStyleQTableWidget。在ubuntu上,默认样式为QCleanlooksStyleQGtkStyle(继承自QCleanlooksStyle)。当用这些样式中的任何一个绘制QTableWidget时,我看到了该错误。我的解决方案是这样的:

int main(int argc, char *argv[])
{
    QApplication a(argc, argv);

    a.setStyle(new QPlastiqueStyle());

    MainWindow w;
    w.show();

    return a.exec();
}

答案 1 :(得分:3)

在PyQt5中,您可以使用以下代码来避免此问题。

app = QApplication()
app.setStyle('Fusion')

我认为这是“GTK +”风格的问题。

答案 2 :(得分:0)

我也遇到过Qt静态构建的问题。如果你把这个代码放在main方法之前的所有其他代码中就会消失:

#ifdef Q_WS_X11
    qputenv("LIBOVERLAY_SCROLLBAR", 0);
#endif