Вывод текста в textview09.02.2012, 19:56. Показов 10388. Ответов 33
Метки нет (Все метки)
Помогите разобраться с textview вот код, по замыслу при нажатии кнопки Hello должен выйти текст в textview но функция не работает
0
|
|||||||||||
| 09.02.2012, 19:56 | |
|
Ответы с готовыми решениями:
33
Выделение текста в TextView TextView авторазмер текста |
| 09.02.2012, 23:09 | |||||||
|
покажи #include "gtk_test.h" Добавлено через 1 час 8 минут исправленный и рабочий твой вариант
Перевод руководства по GTK+ 2.0 GTK+ Справочное описание а также пакет devhelp в лине
1
|
|||||||
| 10.02.2012, 13:39 [ТС] | |
|
я исправил как ты написал но выходит такая ошибка
gtktest.c: In function ‘main’: gtktest.c:30: warning: ‘buffer’ is used uninitialized in this function походу в при вызове функции g_signal_connect(G_OBJECT(button2), "clicked", G_CALLBACK (gtktextview), buffer); ошибка в передачи данных buffer Добавлено через 9 минут все переправил как показано но теперь выходит ошибка gtktest.c: In function ‘main’: gtktest.c:30: warning: ‘buffer’ is used uninitialized in this function походу дело в вот этой строке g_signal_connect(G_OBJECT(button2), "clicked", G_CALLBACK (gtktextview), buffer);
0
|
|
| 10.02.2012, 19:26 | |||
|
buffer=gtk_text_view_get_buffer( (GtkTextView *) textview ); инициализация должна произойти до g_signal_connect ты возьми скопируй весь мой код полностью. также обрати внимание на то, что я изменил в функции gtktextview.
1
|
|||
| 12.02.2012, 10:47 [ТС] | |
|
Спасибо Большое!!!
0
|
|
| 12.02.2012, 12:17 | |||||||||||
|
maximus1991, ну слава богу, я уже было подумал, что у тебя какой-то не такой гтк
![]() если всерьез заинтересован программированием на GTK рекомендую для рисования интерфейсов использовать программу Glade. Согласись, рисовать интерфейс удобней, чем писать его функциями. Только не libglade, а GtkBuilder (libglade - дериватив). опции компилятора для gcc (или g++) соответственно:
Если вообще-вообще заинтересован в программировании на GTK - рекомендую IDE "Anjuta". Она специально заточена под gtk.
0
|
|||||||||||
| 14.02.2012, 13:46 [ТС] | |
|
спасибо за помощь я так то любитель программировать сейчас вот си GTK+ учу. anjutu и glade пробовал, но решил с начало изучить как это все работает а потом только IDE пользоваться. не подскажешь а как передать данные не только buffer но и допустим данные из entry в функцию
g_signal_connect(G_OBJECT(button2), "clicked", G_CALLBACK (gtktextview), buffer);
0
|
|
| 14.02.2012, 22:39 | ||
|
maximus1991,
gtk_prb_bldr - видно, как передаются и меняются туда-сюда данные. тупо проба. Идея проста: чтобы не париться передавать кучу параметров в функции, я объявляю объекты entry и обрабатываемые переменные статическими (там увидишь объявления перед main). то есть static обращаю внимание! некоторые вещи описаны в glade файле, а не в коде. то есть по-любому glade нужен.
1
|
||
| 15.02.2012, 16:26 [ТС] | ||||||
|
извини что замучал но после добавления static GtkEntry *entry;
gtktest.c:34: warning: assignment from incompatible pointer type gtktest.c:37: error: ‘entry1’ undeclared (first use in this function) gtktest.c:37: error: (Each undeclared identifier is reported only once gtktest.c:37: error: for each function it appears in.) gtktest.c:57: warning: passing argument 2 of ‘gtk_container_add’ from incompatible pointer type /usr/include/gtk-2.0/gtk/gtkcontainer.h:111: note: expected ‘struct GtkWidget *’ but argument is of type ‘struct GtkEntry *’ gtktest.c:62: warning: passing argument 1 of ‘gtk_widget_show’ from incompatible pointer type /usr/include/gtk-2.0/gtk/gtkwidget.h:848: note: expected ‘struct GtkWidget *’ but argument is of type ‘struct GtkEntry *
0
|
||||||
| 15.02.2012, 20:29 | ||||||||||||||
|
Ну, дорогой мой, это называется "невнимательность"
![]() лечится приведением типов: gtk_widget_show( (GtkWidget *) entry); Обрати внимание, я уже куски кода с приведением тебе приводил. Твой код без ошибок:
маленький совет: если ты хочешь обрабатывать некоторые объекты скопом - их можно объявить массивом. Добавлено через 1 минуту небольшой совет. вместо отображения каждого объекта:
maximus1991, пожалуйста ![]() таки рекомендую тебе осваивать GTK вместе с glade, чтобы не забивать голову функциями для создания интерфейса. И кода меньше становится.
1
|
||||||||||||||
| 16.02.2012, 15:53 [ТС] | ||||||
|
извини что надоел но так и недогоню почему тогда вот это функция не работает . вроде entry объявлено так static GtkEntry *entry;
[C void gtktextview(GtkWidget *widget, gpointer user_data) { gpointer buffer=user_data; gtk_entry_set_text(GTK_ENTRY(entry), "name"); gchar *some_text="Привет, это какой-то текст"; gtk_text_buffer_set_text (buffer, some_text, -1); }][/C] ошибка gtk_test.c: In function ‘gtktextview’: gtk_test.c:10: error: ‘entry’ undeclared (first use in this function) gtk_test.c:10: error: (Each undeclared identifier is reported only once gtk_test.c:10: error: for each function it appears in.) видно какую то мелочь не знаю. Добавлено через 2 часа 2 минуты извини что замучал но не как не пойму почему не работает эта функция
gtk_test.c:10: error: ‘entry’ undeclared (first use in this function) gtk_test.c:10: error: (Each undeclared identifier is reported only once gtk_test.c:10: error: for each function it appears in.) вроде entery описал так static GtkEntry *entry; Добавлено через 1 минуту извиняюсь за повторение одного и того же текста у меня инет тупит
0
|
||||||
| 16.02.2012, 17:12 | ||||||||||||||||||||||
|
итак, смотрим, что тут написано:
gtk_test.c:10: error: ‘entry’ undeclared (first use in this function) переменная "entry" необъявлена (первое использование в функции). А это потому, что она не объявлена в функции! ![]()
Ответ: первый аргумент - объект (GtkWidget *widget), второй аргумент - данные этого объекта (gpointer data). (т.е. не сами данные, а указатели на них). что ты должен был в функцию сунуть? правильно widget:
1
|
||||||||||||||||||||||
| 16.02.2012, 21:23 [ТС] | ||||||
|
спасибо за подробное объяснение,в этом я и пытаюсь разобраться потом перейду на glade)
Добавлено через 1 час 5 минут а не мог бы по подробнее рассказать про функции , можно ли писать 3 аргумента т.е. void gtktextview(GtkWidget *Widget, GtkEntry *entry, gpointer user_data)? ты пишешь что Ответ: первый аргумент - объект (GtkWidget *widget), второй аргумент - данные этого объекта (gpointer data). (т.е. не сами данные, а указатели на них). что ты должен был в функцию сунуть?
0
|
||||||
| 16.02.2012, 22:11 | |||||
![]()
1
|
|||||
| 17.02.2012, 14:36 [ТС] | |||||||||||
|
ты наверное меня не так понял вот код
0
|
|||||||||||
| 18.02.2012, 18:37 | ||||||
что куда и как передается могу также посоветовать книгу "Разработка Linux-приложений" Д. Колисниченко 2011 г.
0
|
||||||
| 25.02.2012, 19:01 [ТС] | ||||||
|
не подскажешь как работать с числами, то есть при вводе числа в entry и нажатии на button что бы в строку label вывел какую нибудь сумму и разность чисел, вот пример, но при запуске выводи ерунду какую то((
0
|
||||||
| 29.02.2012, 21:16 | ||||||
|
maximus1991, э-э-э... батенька, это вам надо основы языка Си сначала освоить/вспомнить.
есть понятие символьные массивы (содержат символы) и есть целочисленные переменные (содержать целые числа). т.е. тебе надо использовать функцию atoi(), подключить файл #include <stdlib.h>
man по atoi
ATOI(3) Linux Programmer's Manual ATOI(3)
ИМЯ atoi, atol, atoll, atoq - преобразует строку символов в целое число СИНТАКСИС #include <stdlib.h> int atoi(const char *nptr); long atol(const char *nptr); long long atoll(const char *nptr); long long atoq(const char *nptr); ОПИСАНИЕ Функция atoi() преобразует начальную часть строки, на которую указывает nptr, в целое число типа int. Действие аналогично strtol(nptr, (char **)NULL, 10); за исключением того, что atoi() не сообщает об ошибках. Функции atol() и atoll() ведут себя так же, как и atoi(), но только преобразуют начальную часть строки в значение типа long или long long. atoq() -- это устаревшее название функции atoll(). ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ Преобразованное число.
1
|
||||||
| 02.03.2012, 19:59 [ТС] | ||||||
|
извини что надоел но так не доганю почему не работает щас?
0
|
||||||
| 02.03.2012, 19:59 | |
|
Помогаю со студенческими работами здесь
20
TextView выравнивание текста Обновление текста в TextView
Динамическое изменение текста в TextView Отображение текста (из файла) в textView Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
|
Сукцессия микоризы: основная теория в виде двух уравнений.
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
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
|
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/
O1rJuneU_ls
https:/ / vkvideo. ru/ video-115721503_456239114
|
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ВВЕДЕНИЕ
Введу сокращения:
аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
|
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi
ветка по-частям.
коммит Create переделка под биомассу. txt
вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
|