Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
DrMGC
0 / 0 / 0
Регистрация: 19.04.2013
Сообщений: 83
#1

Gtk+: GtkBuilder: Не может найти обработчик сигнала - C++

03.12.2013, 20:02. Просмотров 186. Ответов 0
Метки нет (Все метки)

(пишу сюда, ибо по прикладному С++ нету, а до "для экспертов" не тянет)
вот .ui-файл (делал в glade)
Кликните здесь для просмотра всего текста
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
<?xml version="1.0" encoding="UTF-8"?>
<interface>
  <!-- interface-requires gtk+ 3.0 -->
  <object class="GtkWindow" id="window_main">
    <property name="can_focus">False</property>
    <property name="border_width">10</property>
    <property name="window_position">center</property>
    <signal name="destroy" handler="window_main__destroy" swapped="no"/>
    <signal name="delete-event" handler="window_main__delete_event" swapped="no"/>
    <child>
      <object class="GtkBox" id="box_main">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <property name="orientation">vertical</property>
        <property name="spacing">10</property>
        <child>
          <object class="GtkLabel" id="label_test">
            <property name="visible">True</property>
            <property name="can_focus">False</property>
            <property name="label" translatable="yes">label</property>
          </object>
          <packing>
            <property name="expand">True</property>
            <property name="fill">True</property>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <object class="GtkButton" id="button_check">
            <property name="label" translatable="yes">button</property>
            <property name="use_action_appearance">False</property>
            <property name="visible">True</property>
            <property name="can_focus">True</property>
            <property name="receives_default">True</property>
            <property name="use_action_appearance">False</property>
            <signal name="clicked" handler="button_check__press" object="label_test" swapped="no"/>
          </object>
          <packing>
            <property name="expand">False</property>
            <property name="fill">True</property>
            <property name="position">1</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
</interface>


Инициализация
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
        void    Gui::init(int* _argc, char*** _argv) {
            gtk_init(_argc, _argv);
 
            /*
                GtkBuilder
                    builder
            */
            this->builder__ = gtk_builder_new();
 
                if(!gtk_builder_add_from_file(this->builder__, "assets/gui.ui", &this->error__)) {
                    g_critical("\n\tError per loading file: %s\n", this->error__->message);
                    g_error_free(this->error__);
                }
 
                gtk_builder_connect_signals(this->builder__, NULL);
 
 
 
            /*
                Window
                    main
            */
            this->window_main__ = GTK_WIDGET(gtk_builder_get_object(this->builder__, "window_main"));
                if(!this->window_main__) { g_critical ("\n\nError per getting widget for window_main\n"); }
                gtk_widget_show(this->window_main__);
 
 
 
            g_object_unref(this->builder__);
        }

Вот сами обработчики
Кликните здесь для просмотра всего текста
C++
1
2
3
4
5
6
7
8
9
10
11
12
void    window_main__destroy(GtkWidget* _object, gpointer _data) {
    g_print("Quiting\n");
    gtk_main_quit();
}
gboolean    window_main__delete_event(GtkWidget* _widget, GdkEvent* _event, gpointer _data) {
    return FALSE;
}
 
 
void    button_check__press(GtkButton* _button, gpointer _label) {
    gtk_label_set_text(GTK_LABEL(_label), "hello!");
}


Вывод ошибки
Кликните здесь для просмотра всего текста

(dtx:6461): Gtk-WARNING **: Could not find signal handler 'window_main__destroy'

(dtx:6461): Gtk-WARNING **: Could not find signal handler 'window_main__delete_event'

(dtx:6461): Gtk-WARNING **: Could not find signal handler 'button_check__press'


И да, делал по этому уроку: http://habrahabr.ru/post/136922/
PS использую GTK+ 3.x
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.12.2013, 20:02
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Gtk+: GtkBuilder: Не может найти обработчик сигнала (C++):

Почему может не работать обработчик события? - C++
Подскажите пожалуйста, почему в моем коде не срабатывает обработчик? LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam,...

GtkBuilder: Не может найти обработчик сигнала - C++ Linux
вот .ui-файл (делал в glade) &lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt; &lt;interface&gt; &lt;!-- interface-requires gtk+ 3.0 --&gt; &lt;object...

обработка сигнала button в GTK+ - Кроссплатформенная разработка
Здравствуйте, я начинающий в программирование в СИ и GTK+ вот написал код не большой#include &lt;gtk/gtk.h&gt; #include &lt;libintl.h&gt; #include...

Обработчик сигнала - C (СИ)
У меня есть родительский процесс, он порождает дочерний. Затем, спустя какое-то время, (когда закончится , например, итерация цикла),...

Обработчик сигнала из дочернего окна - Python
Добрый день. только начинаю осваивать PyQt5. проблема в следующем. Есть два окна -form1 и form2. Из form1 вызывается form2. При попытке...

Передача аргументов в обработчик сигнала - C Linux
Добрый вечер. Подскажите возможно ли передать в обработчик сигнала дополнительные параметры? У меня есть два приложения. Из первого посылаю...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.12.2013, 20:02
Привет! Вот еще темы с ответами:

Что привычнее для Windows-программиста-GTK+, GTK#, wxWidgets, Qt, Java FX, Swing? - Кроссплатформенная разработка
После Visual Basic 6, Delphi что будет привычнее?Что ближе всего к Windows?

кто может ? Обработчик одномерных последовательностей(массивов) - Java SE
Обработчик одномерных последовательностей(массивов) Программа должны уметь работать с одномерными массивами Массивы должны...

Преобразовать объект gtk.Image или gtk.gdb.Pixbuf в PIL.Image - Python
Делаем скриншот, дальше требуется его обрезать/перерисовать/еще что нибудь, в gtk.image таких функций не нашел, единственная похожая...

Может ли один обработчик принимать несколько запросов одновременно? - PHP
Задача примерно такая: Есть сервер удаленный. На нем лежат php обработчики приложения. Есть клиенты которые при помощи кроссдоменного...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru