Форум программистов, компьютерный форум, киберфорум
Кроссплатфор­менная разработка
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.82/11: Рейтинг темы: голосов - 11, средняя оценка - 4.82
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2

обработка сигнала button в GTK+

21.08.2011, 19:40. Показов 2187. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте, я начинающий в программирование в СИ и GTK+ вот написал код не большой
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <gtk/gtk.h>
#include <libintl.h>
#include <stdio.h>
static char* choose_greeting ()
{
  return ("hello");
}
 
static void cb_button_click(GtkButton *button, gpointer data)
{
  GtkWidget *label = GTK_WIDGET(data);
 
  g_assert(label != NULL);
  gtk_label_set_text(GTK_LABEL (label), "Привет");
 
}
static void destroy(GtkWidget *widget);
int main(int argc, char** argv)
{
 
                GtkWidget *window, *button, *vbox, *button2 ,*label;
                gtk_init(&argc, &argv);
                window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
                gtk_window_set_title(GTK_WINDOW(window),"Hello");
                button = gtk_button_new_with_label("Привет");
                label = gtk_label_new(choose_greeting());
                vbox = gtk_vbox_new(TRUE,10);
                gtk_container_add(GTK_CONTAINER(window),vbox);
                gtk_container_add(GTK_CONTAINER(vbox),button);
                gtk_container_add(GTK_CONTAINER(vbox),label);
                g_signal_connect(G_OBJECT(window),"destroy",G_CALLBACK(destroy),NULL);
                g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (cb_button_click), label); 
                gtk_widget_show(window);
                gtk_widget_show(button);
                gtk_widget_show(label);
                gtk_widget_show(vbox);
                gtk_main();
        
                return 0;
}
 
static void destroy(GtkWidget *widget) {
        gtk_main_quit();
}
как мне сделать чтобы при нажатии кнопки выполнялась вот этот код с работой с файлами
C
1
2
3
4
5
6
7
8
9
10
11
12
 FILE *file;
char* file_name = "file.txt";
char load_string[50] = "none";
file = fopen( file_name, "w" );
 
fputs( "HELLO)", file );
 
fclose( file );
 
file = fopen( file_name, "r" );
 
fclose(file);
заранее Спасибо
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
21.08.2011, 19:40
Ответы с готовыми решениями:

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

Обработка событий button
Всем доброго вечера) пишу программу для тестов. вопросы для тестов берутся из файла, оттуда же и ответы. процесс задавания вопросов и...

Обработка Button с текстом
Есть три кнопки, в них разный текст. Реально ли сделать так, чтобы при нажатии одной из них , кнопки остались, а текст в них поменялся,...

7
Linux-оид
 Аватар для OLLEGATOR
120 / 69 / 9
Регистрация: 15.02.2011
Сообщений: 374
28.08.2011, 02:45
g_signal_connect (G_OBJECT (button), "clicked", G_CALLBACK (BLA_BLA), label); // нажатие кнопки...


C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
void BLA_BLA(){
   FILE *file;
   char* file_name = "file.txt";
   char load_string[50] = "none";
   file = fopen( file_name, "w" );
 
   fputs( "HELLO)", file );
 
   fclose( file );
 
   file = fopen( file_name, "r" );
 
   fclose(file);
}
0
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2
14.09.2011, 20:53  [ТС]
спасибо , а не подскажите как вызвать функцию из фот этого кода и glade
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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#include <gtk/gtk.h>
#include <libintl.h>
#include <stdio.h>
 
void 
on_window_destroy (GtkObject *object, gpointer user_data)
{
    gtk_main_quit ();
}
 
 
static void on_button1_clicked(){
   FILE *file;
   char* file_name = "file.txt";
   char load_string[50] = "none";
   file = fopen( file_name, "w" );
 
   fputs( "HELLO)", file );
 
   fclose( file );
 
   file = fopen( file_name, "r" );
 
   fclose(file);
} 
int main (int argc, char *argv[])
{
    GtkBuilder      *builder; 
    GtkWidget       *window,*but,*but2,*nbox, *entry;
 
    gtk_init (&argc, &argv);
 
    builder = gtk_builder_new ();
    gtk_builder_add_from_file (builder, "ma.glade", NULL);
    
 
 
    window = GTK_WIDGET (gtk_builder_get_object (builder, "window"));
    nbox = GTK_WIDGET (gtk_builder_get_object (builder, "vbox1"));
    entry = GTK_WIDGET (gtk_builder_get_object (builder, "entry1"));
    but = GTK_WIDGET (gtk_builder_get_object (builder, "button1"));
    but2 = GTK_WIDGET (gtk_builder_get_object (builder, "button2"));
    gtk_builder_connect_signals (builder, NULL);
   g_object_unref (G_OBJECT (builder));
        
    gtk_widget_show_all (window); 
           
    gtk_main ();
 
    return 0;
}
вот 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>
  <requires lib="gtk+" version="2.24"/>
  <!-- interface-naming-policy project-wide -->
  <object class="GtkWindow" id="window">
    <property name="can_focus">False</property>
    <child>
      <object class="GtkVBox" id="vbox1">
        <property name="visible">True</property>
        <property name="can_focus">False</property>
        <child>
          <object class="GtkButton" id="button">
            <property name="label" translatable="yes">кнопка</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="on_button1_clicked" swapped="no"/>
          </object>
          <packing>
            <property name="expand">True</property>
            <property name="fill">True</property>
            <property name="position">0</property>
          </packing>
        </child>
        <child>
          <placeholder/>
        </child>
        <child>
          <object class="GtkButton" id="button2">
            <property name="label" translatable="yes">кнопка 2</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="on_button2_clicked" swapped="no"/>
          </object>
          <packing>
            <property name="expand">True</property>
            <property name="fill">True</property>
            <property name="position">2</property>
          </packing>
        </child>
      </object>
    </child>
  </object>
</interface>
0
Linux-оид
 Аватар для OLLEGATOR
120 / 69 / 9
Регистрация: 15.02.2011
Сообщений: 374
15.09.2011, 18:00
С глейдом не работаю и вам не советую...пишите код сами..что бы всё понимать...когда научитесь сами ищите туториалы по глейду если хотите (а спасибо это +1)...
1
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2
17.09.2011, 10:29  [ТС]
не подскажите какой виджет использовать чтобы выглядил примерно так же как на картинке , где таблица пользователь и его данные .?
Миниатюры
обработка сигнала button в GTK+  
0
Linux-оид
 Аватар для OLLEGATOR
120 / 69 / 9
Регистрация: 15.02.2011
Сообщений: 374
17.09.2011, 14:02
http://www.opennet.ru/docs/RUS... og.html.gz - здесь много полезного посмотрите...
0
15 / 14 / 4
Регистрация: 20.05.2011
Сообщений: 296
Записей в блоге: 2
18.09.2011, 00:13  [ТС]
спасибо за ссылку, а все таки каким примерно виджетом можно такое сделать?
0
Linux-оид
 Аватар для OLLEGATOR
120 / 69 / 9
Регистрация: 15.02.2011
Сообщений: 374
25.12.2011, 23:28
деревом
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
25.12.2011, 23:28
Помогаю со студенческими работами здесь

Обработка форм Button
Здравствуйте! Помогите пож-та осилить небольшой вопрос. Сразу скажу, изучаю C#, пишу &quot;калькулятор&quot; )) Вопрос в следующем. Можно...

Обработка Image Button
Здравствуйте. Решил обработать Image Button. Задал звук на нажатие, изменение картинки. Всё работает, но если я задаю задержку (чтобы...

Обработка сигнала
Работаю с разными датчиками системы записи звука, поручили задачу очистить звук( что я уже сделал и все работает) но сейчас мне дали задачу...

обработка сигнала
Здравствуйте!помогите решить одну задачу. Дан сигнал(любой).Для него нужно определить мат ожидание по формуле 1/n*сумму (от i=1 до n) Xi...

Обработка сигнала
Всем привет! На ногу МК приходит ШИМ сигнал с устройства. В зависимости от условий на самом устройстве, частота сигнала меняется. Как...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит переходные токи и напряжения на элементах схемы. . . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru