Qt Gtk CRITICAL**:IA_ugtk_widget_style_get:assertion`Gtk_IS_widget(widget)和#x27;失败
在静态构建qt应用程序之后Qt Gtk CRITICAL**:IA_ugtk_widget_style_get:assertion`Gtk_IS_widget(widget)和#x27;失败,qt,ubuntu,build,widget,gtk,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 是否真的有
./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吗
任何帮助都将不胜感激。这有点晚了,但希望能为其他人节省一些时间 对我来说,这个错误是由两个因素共同造成的:
QCleanlooksStyle
和QTableWidget
。在ubuntu上,默认样式是QCleanlooksStyle
或qgtksStyle
(继承自QCleanlooksStyle
)。当QTableWidget
使用这些样式中的任何一种绘制时,我看到了这个错误。我的解决方案是这样的:
int main(int argc, char *argv[])
{
QApplication a(argc, argv);
a.setStyle(new QPlastiqueStyle());
MainWindow w;
w.show();
return a.exec();
}
我在Qt的静态构建中也遇到了这个问题。若将此代码放在main方法中的所有其他代码之前,则问题会消失:
#ifdef Q_WS_X11
qputenv("LIBOVERLAY_SCROLLBAR", 0);
#endif
在PyQt5中,可以使用以下代码来避免该问题
app = QApplication()
app.setStyle('Fusion')
我认为这是GTK+风格的问题。谢谢!这确实是一个关于清洁外观风格的问题。对我来说,有时我的应用程序窗口会扩展到令人难以置信的维度(如果有QTextWidget等小部件)。但在切换到“融合”后,这两个问题都消失了。什么?你能详细说明一下这个答案吗?这本身不是有效的代码。