Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Glade-2 и создания функций  (Прочитано 3383 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Patriot

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Glade-2 и создания функций
« : 21 Январь 2007, 12:18:27 »
Ни как не могу понять, как писать проги с использованием GTK. "Hello World" с осилил и на стом дело у меня встало.
Проблема: Создаю в glade-2 проект, окно, на нём размещаю компаненты и .т.п.  размещаю кнопку, в "Properties" кнопки на вкладке "Signals" создаю для неё сигнал "clicked"  добавляю его, сохрансю проект, нажимаю "Build" для генерации кода. В консоли в папке с проектом даю команды:
./autogen.sh
make
./src/project1
Программа компилируется и запускается.
Затем открываю файл "callbacks.c"
Он содержит:

#ifdef HAVE_CONFIG_H
#  include <config.h>
#endif

#include <gtk/gtk.h>

#include "callbacks.h"
#include "interface.h"
#include "support.h"


void
on_button1_clicked                     (GtkButton       *button,
                                        gpointer         user_data)
{

}
Пишу между фигурными скобками:
{
   gtk_button_set_label(button, "Test");
}
Компилирую, запускаю, при нажатии на button1 значение label меняется на Test, и на
стом у меня дело встало, не могу сделать например так:
{
   gint a, b;
   a = gtk_spin_button_get_value_as_int(spinbutton1);
   b = gtk_spin_button_get_value_as_int(spinbutton2);
   gtk_entry_set_text(entry1, a+b);
}

Выше приведённый пример не компилируется. Как сделать правильно?

ЗЫ: Пример проекта в прикреплённом файле.

[вложение удалено Администратором]

Оффлайн can3p

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #1 : 21 Январь 2007, 12:51:13 »
Из документации:
void        gtk_button_set_label            (GtkButton *button,
                                             const gchar *label);

Sets the text of the label of the button to str. This text is also used to select the stock item if gtk_button_set_use_stock() is used.

This will also clear any previously set labels.

button :    a GtkButton
label :    a string

Второй параметр - строка, а вы передаёте целые числа. Читайте документацию, и будет вам счастье, тем более что в ubuntu это сделано учень удобно(см. devhelp и -doc пакеты к библиотекам)

Оффлайн Crew

  • Старожил
  • *
  • Сообщений: 1384
  • xneur 0.20.0
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #2 : 21 Январь 2007, 13:02:45 »
Там на самом деле куча ошибок.
Вот проект Anjuta и Glade.
Исправлены опции glade проекта. См Signals, и опции spin
Обработчик
gint a, b;
GtkWidget *widgetPtrToBefound;
widgetPtrToBefound = lookup_widget(GTK_WIDGET(user_data), "spinbutton1");
a = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgetPtrToBefound));
widgetPtrToBefound = lookup_widget(GTK_WIDGET(user_data), "spinbutton2");
b = gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgetPtrToBefound));
widgetPtrToBefound = lookup_widget(GTK_WIDGET(user_data), "entry1");
a+=b;
gchar *entry_text = g_strdup_printf("%d", a);
gtk_entry_set_text(GTK_ENTRY(widgetPtrToBefound), entry_text);
return;

Если непонятно, пишите.
PPA cо стабильными сборками xneur: ppa:andrew-crew-kuznetsov/xneur-stable
PPA c "ночными" сборками xneur: ppa:andrew-crew-kuznetsov/xneur-unstable

Оффлайн Crew

  • Старожил
  • *
  • Сообщений: 1384
  • xneur 0.20.0
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #3 : 21 Январь 2007, 13:11:14 »
Забыл сам проект. Я его не чистил, постому много.

[вложение удалено Администратором]
PPA cо стабильными сборками xneur: ppa:andrew-crew-kuznetsov/xneur-stable
PPA c "ночными" сборками xneur: ppa:andrew-crew-kuznetsov/xneur-unstable

Оффлайн Patriot

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #4 : 22 Январь 2007, 14:00:32 »
andrewcrew
Спасибо, поглсдел работает. Честно говоря немного растроен, что оказалось всё не так то просто, как хотелось бы :(
Мне необходимо написать простенькую прогу которая делает некоторые расчёты, думаю, что полученных знаний должно хватить.
Если будут затруднения то с знаю где можно попросить совета:)

Спасибо всем ответившим.

Оффлайн Kwah

  • Заслуженный пользователь
  • Старожил
  • *
  • Сообщений: 1442
  • Ubuntu 17.10
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #5 : 22 Январь 2007, 16:34:10 »
А может проще для рассчётов взять что-нибудь типа octave? Или попробовать как-нибудь обойтись без кнопок :)

Оффлайн Crew

  • Старожил
  • *
  • Сообщений: 1384
  • xneur 0.20.0
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #6 : 22 Январь 2007, 19:56:38 »
На самом деле, все достаточно просто. Вопрос привычки. Мне с Visual Basic перейти оказалось довольно просто :)
lookup_widget(GTK_WIDGET(user_data), "spinbutton1") - получить указатель на компонент spinbutton1 из окна user_data. Его мы передаем, когда в Glade настраиваем события.
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgetPtrToBefound)) - используем соответствующую функцию, указав, что передаем туда не просто виджет, а виджет типа spin_button.

Вот и все.

PPA cо стабильными сборками xneur: ppa:andrew-crew-kuznetsov/xneur-stable
PPA c "ночными" сборками xneur: ppa:andrew-crew-kuznetsov/xneur-unstable

Оффлайн can3p

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #7 : 22 Январь 2007, 20:54:02 »
Если нужна легкость разработки, то возможно следует посмотреть в сторону python + pygtk

Оффлайн xxxYURAxxx

  • Активист
  • *
  • Сообщений: 537
  • LinuxFormat друг человека...
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #8 : 22 Январь 2007, 23:55:02 »
можно выложить рабочий проект для ознакомления с gtk?
+ небольшой ман по сборке :)
только, если не сложно...

Оффлайн Crew

  • Старожил
  • *
  • Сообщений: 1384
  • xneur 0.20.0
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #9 : 23 Январь 2007, 12:38:23 »
Там сверху с полностью рабочий проект выложил. Сборка стандартнас (configure, make). Там же проектные файлы под Anjuta и Glade.
PPA cо стабильными сборками xneur: ppa:andrew-crew-kuznetsov/xneur-stable
PPA c "ночными" сборками xneur: ppa:andrew-crew-kuznetsov/xneur-unstable

Оффлайн can3p

  • Новичок
  • *
  • Сообщений: 47
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #10 : 23 Январь 2007, 22:49:17 »
можно выложить рабочий проект для ознакомления с gtk?
+ небольшой ман по сборке :)
только, если не сложно...

Если про python, то http://pygtk.org/pygtk2tutorial/ch-GettingStarted.html#sec-HelloWorld

Оффлайн Patriot

  • Автор темы
  • Новичок
  • *
  • Сообщений: 34
    • Просмотр профиля
Re: Glade-2 и создания функций
« Ответ #11 : 24 Январь 2007, 19:59:52 »
Цитировать
А может проще для рассчётов взять что-нибудь типа octave? Или попробовать как-нибудь обойтись без кнопок Smiley

Для меня скорей всего стоит вопрос написания программ под GNU/Linux в целом. Я около 4 лет для этих целий использовал Delphi или Builder C++, программы были не сложные (типо генирации отчётов по шаблону, добавление/редактирования данных в BD).
Под Linux с пробывал "Куликс", и "Рамарус" (не помню как пишется правильно) но это всё не то.
Вообще простенькую "программу" для расчётов можно и в OpenOffice написать. Но всё равно мне необходимо научится писать программы с использованием GTK и с начал от проэтого к сложному.

Дальнейшие написания программ под оффтопик не представлсется возможным в следствии отсутствис лицензии как на сам оффтопик так и на ПО используемое для стого.
Последние время проги писал на PHP c WEB интерфейсом, но это не всегда удобно как и для самой работы с программой так и для её реализации.

andrewcrew
Цитировать
На самом деле, все достаточно просто. Вопрос привычки. Мне с Visual Basic перейти оказалось довольно просто Smiley
lookup_widget(GTK_WIDGET(user_data), "spinbutton1") - получить указатель на компонент spinbutton1 из окна user_data. Его мы передаем, когда в Glade настраиваем события.
gtk_spin_button_get_value_as_int(GTK_SPIN_BUTTON(widgetPtrToBefound)) - используем соответствующую функцию, указав, что передаем туда не просто виджет, а виджет типа spin_button.

Вот и все.

Спасибо за объяснение стало понятней, думаю, что со временем привыкну.

Цитировать
Если нужна легкость разработки, то возможно следует посмотреть в сторону python + pygtk
Смотрел, но Python совсем не знаю так что там затруднения возникли не только с GTK но и с самим языком. Знаю, что Python хвалст за простоту и удобства написани программ, в будущем думаю начать его изучение.




 

Страница сгенерирована за 0.056 секунд. Запросов: 25.