GTK + 3 приложения на основе файла .glade в разных ОС

Я написал небольшое приложение GTK + на C ++, которое отлично работает для меня на Debian x64 с Gnome 3. Однако оно не работает на Lubuntu x86. Итак, я написал тестовую программу, которая создает окно с некоторыми виджетами из моего файла gui.glade, и это не работает слишком на Lubuntu, но работает на Debian. Здесь идет тестовый код:

#include <gtk/gtk.h>

void create_window()
{
GtkBuilder *builder;
builder = gtk_builder_new();

gtk_builder_add_from_file (builder, "src/gui.glade", NULL);
gtk_builder_connect_signals (builder, NULL);

GtkWidget *window;
window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));

gtk_window_set_title (GTK_WINDOW (window), "Startup Settings");
g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);

gtk_widget_show (window);
}

int main (int argc, char *argv[])
{
gtk_init (&argc, &argv);
create_window();

gtk_main ();
}

Я компилирую это с g ++:

g++ -std=c++11 `pkg-config --cflags gtk+-3.0` test.cpp -rdynamic `pkg-config --libs gtk+-3.0`

Ошибка вывода:

** (a.out:17864): WARNING **: Error retrieving accessibility bus address: org.freedesktop.DBus.Error.ServiceUnknown: The name org.a11y.Bus was not provided by any .service files

(a.out:17864): Gtk-CRITICAL **: gtk_window_set_title: assertion 'GTK_IS_WINDOW (window)' failed

(a.out:17864): GLib-GObject-WARNING **: invalid (NULL) pointer instance

(a.out:17864): GLib-GObject-CRITICAL **: g_signal_connect_data: assertion 'G_TYPE_CHECK_INSTANCE (instance)' failed

(a.out:17864): Gtk-CRITICAL **: gtk_widget_show: assertion 'GTK_IS_WIDGET (widget)' faile

Вы можете скачать gui.glade Вот.

0

Решение

Я только что открыл свой gui.glade свойства файла и проблема стала очевидной. По умолчанию Glade требует, чтобы на вашем компьютере была установлена ​​последняя версия GTK +. Я использую нестабильный Debian, поэтому для меня это GTK 3.20. Когда я тестировал его на стабильной системе, он не работал, потому что на нем был установлен GTK 3.18.

Чтобы решить проблему, я изменил свой gui.glade свойства через Glage и уменьшил требуемую версию GTK до 3.10.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]