5

在静态构建我的 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 吗?

任何帮助将不胜感激。

4

3 回答 3

11

这有点晚了,但希望它可以节省其他人一些时间。

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

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

    a.setStyle(new QPlastiqueStyle());

    MainWindow w;
    w.show();

    return a.exec();
}
于 2013-03-28T00:40:53.223 回答
3

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

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

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

于 2016-03-05T14:57:24.103 回答
0

Qt的静态构建也有这个问题。如果您将此代码放在 main 方法中的所有其他内容之前,问题就会消失:

#ifdef Q_WS_X11
    qputenv("LIBOVERLAY_SCROLLBAR", 0);
#endif
于 2014-04-25T11:27:13.287 回答