在我的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?
任何帮助将不胜感激。
答案 0 :(得分:11)
这有点晚了,但希望能在一段时间内拯救别人。
对我来说,错误是由两件事组合引起的:QCleanlooksStyle
和QTableWidget
。在ubuntu上,默认样式为QCleanlooksStyle
或QGtkStyle
(继承自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