我有一个更大的应用程序,我想为一个特定的子任务创建 GUI 对话框。我决定使用 Qt 但我不熟悉它,所以我做这件事可能是错误的方式。
我快速而肮脏的原型:
void ManualFeatureMatcher::matchFeatures() {
int argc = 0;
char* argv[1] = {NULL};
QApplication a(argc, argv);
Widget w;
w.show();
a.exec();
}
这在第一次调用该函数时工作正常,但是当我再次调用它时,我得到了这些错误:
(app:8540): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
(app:8540): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
(app:8540): Gtk-CRITICAL **: IA__gtk_container_add: assertion `GTK_IS_CONTAINER (container)' failed
(app:8540): Gtk-CRITICAL **: IA__gtk_widget_realize: assertion `GTK_WIDGET_ANCHORED (widget) || GTK_IS_INVISIBLE (widget)' failed
完成此操作的正确方法是什么?