Форум программистов, компьютерный форум, киберфорум
C/С++ под Linux
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/58: Рейтинг темы: голосов - 58, средняя оценка - 4.79
Заблокирован

Возможно ли создать простое gui самому из терминала?

22.06.2021, 04:51. Показов 11345. Ответов 16
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Допустим я написал простую hello world..
C++
1
2
3
4
5
6
7
#include <iostream>             // подключаем заголовочный файл iostream
 
int main()                          // определяем функцию main
{                                   // начало функции
    std::cout << "Hello World!";    // выводим строку на консоль
    return 0;                       // выходим из функции
}
Возможно ли создать простое gui самому к этой программе из терминала (консоли) linux?
И как это делается?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
22.06.2021, 04:51
Ответы с готовыми решениями:

Java GUI & JavaFX создать простое приложение
парни, доброго времени суток,новенький в этой сфере,нужна помощь,нужна простая программа,в которой будет двигаться точка или любой объект,в...

Возможно ли, используя ASP.NET Core, самому создать сервер, к которому можно подключиться из WAN?
Или это могут делать только власть имущие? Если возможно, то что для этого нужно? Кроме белого IP-адреса, разумеется.

Как запустить GUI программу в Linux с правами суперпользователя без терминала
Доброго времени суток! Помогите пожалуйста решить такую проблему. Есть куча задач по редактированию файлов и каталогов в файловом...

16
124 / 44 / 15
Регистрация: 01.11.2020
Сообщений: 122
22.06.2021, 08:32
Что такое gui из терминала ?

Похоже вам нужно это A Brief intro to X11 Programming
0
188 / 89 / 35
Регистрация: 26.04.2021
Сообщений: 346
22.06.2021, 09:11
Лучший ответ Сообщение было отмечено resto8 как решение

Решение

Простое в плане чего? И какие требования к GUI помимо этого?
Ват вам простое GUI на GTK 3:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <gtk/gtk.h>
 
static void activate(GtkApplication *app, gpointer user_data) {
    GtkWidget *window = gtk_application_window_new(app);
    gtk_container_add(GTK_CONTAINER(window), gtk_label_new("Hello World!"));
    gtk_widget_show_all(window);
}
 
int main(int argc, char *argv[]) {
    g_autoptr(GtkApplication) app = gtk_application_new(NULL, G_APPLICATION_FLAGS_NONE);
    g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
 
    return g_application_run(G_APPLICATION(app), argc, argv);
}
А вот на GTK 4:
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <gtk/gtk.h>
 
static void activate(GtkApplication *app, gpointer user_data) {
    GtkWidget *window = gtk_application_window_new(app);
    GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
    gtk_window_set_child(GTK_WINDOW(window), box);
    gtk_box_append(GTK_BOX(box), gtk_label_new("Hello World!"));
    gtk_widget_show(window);
}
 
int main(int argc, char *argv[]) {
    g_autoptr(GtkApplication) app = gtk_application_new(NULL, G_APPLICATION_FLAGS_NONE);
    g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
 
    return g_application_run(G_APPLICATION(app), argc, argv);
}
1
Почетный модератор
 Аватар для Humanoid
11553 / 4348 / 452
Регистрация: 12.06.2008
Сообщений: 12,453
22.06.2021, 11:24
Для текстового интерфейса можно использовать библиотеку ncurses. За счёт того, что там можно выводить надписи в любом месте консоли по координатам, это позволяет рисовать любые интерфейсы. Так же есть возможность рисовать текстовые окна, обрабатывать нажатия на кнопки и т.п.
1
Заблокирован
15.08.2021, 06:38  [ТС]
lindevel, У меня на ubuntu 21.04 выдает:
fatal error: gtk/gtk.h: No such file or directory
и установить пакет gtk не дает, такими командами:
apt-get install libgtk2-dev
apt-get install libgtk3-dev
apt-get install libgtk4-dev
Я хочу, получить полноценный запуск "gui формы с надписью hello world"..
0
188 / 89 / 35
Регистрация: 26.04.2021
Сообщений: 346
15.08.2021, 08:59
resto8, Ну так указанных вами пакетов не существует, конечно не дает, вот правильные названия пакетов: libgtk-3-dev, libgtk-4-dev
0
Заблокирован
15.08.2021, 09:26  [ТС]
lindevel, Да, все верно.

Плюс на ubuntu 21.04 нужно было ввести такие команды:
export CPATH=$CPATH:/usr/include/gtk-2.0
export CPATH=$CPATH:/usr/include/glib-2.0/
export CPATH=$CPATH:/usr/lib/glib-2.0/include/
export CPATH=$CPATH:/usr/include/pango-1.0/
export CPATH=$CPATH:/usr/lib/gtk-2.0/include/
export CPATH=$CPATH:/usr/include/atk-1.0/
Теперь выдает при попытке скомпилировать такой код на gtk4:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <gtk/gtk.h>
 
static void activate(GtkApplication *app, gpointer user_data) {
    GtkWidget *window = gtk_application_window_new(app);
    GtkWidget *box = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
    gtk_window_set_child(GTK_WINDOW(window), box);
    gtk_box_append(GTK_BOX(box), gtk_label_new("Hello World!"));
    gtk_widget_show(window);
}
 
int main(int argc, char *argv[]) {
    g_autoptr(GtkApplication) app = gtk_application_new(NULL, G_APPLICATION_FLAGS_NONE);
    g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
 
    return g_application_run(G_APPLICATION(app), argc, argv);
}

на ubuntu 21.04:
root@user-PC:/home/user# g++ hello.c
In file included from /usr/include/glib-2.0/glib/galloca.h:32,
from /usr/include/glib-2.0/glib.h:30,
from /usr/include/glib-2.0/gobject/gbinding.h:28,
from /usr/include/glib-2.0/glib-object.h:22,
from /usr/include/glib-2.0/gio/gioenums.h:28,
from /usr/include/glib-2.0/gio/giotypes.h:28,
from /usr/include/glib-2.0/gio/gio.h:26,
from /usr/include/gtk-2.0/gdk/gdkapplaunchcontext.h:30,
from /usr/include/gtk-2.0/gdk/gdk.h:32,
from /usr/include/gtk-2.0/gtk/gtk.h:32,
from hello.c:1:
/usr/include/glib-2.0/glib/gtypes.h:32:10: fatal error: glibconfig.h: No such file or directory
32 | #include <glibconfig.h>
| ^~~~~~~~~~~~~~
Конкретно эта строка:
fatal error: glibconfig.h: No such file or directory
Установка пакета glibc-source на ubuntu 21.04 не решает эту проблему.
0
188 / 89 / 35
Регистрация: 26.04.2021
Сообщений: 346
15.08.2021, 09:55
Лучший ответ Сообщение было отмечено resto8 как решение

Решение

resto8, Не нужно вводить эти команды, это полнейший бред, вот вам набор команд для создания файла с кодом, компиляции и запуска программы:
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cat <<EOT > gtk4-example.c
#include <gtk/gtk.h>
 
static void activate(GtkApplication *app, void *user_data) {
    GtkWidget *window = gtk_application_window_new(app);
    gtk_window_set_child(GTK_WINDOW(window), gtk_label_new("Hello World!"));
    gtk_window_present(GTK_WINDOW(window));
}
 
int main(int argc, char *argv[]) {
    g_autoptr(GtkApplication) app = gtk_application_new(NULL, G_APPLICATION_FLAGS_NONE);
    g_signal_connect(app, "activate", G_CALLBACK(activate), NULL);
 
    return g_application_run(G_APPLICATION(app), argc, argv);
}
EOT
g++ -o gtk4-example gtk4-example.c $(pkg-config --cflags --libs gtk4)
./gtk4-example
0
Заблокирован
15.08.2021, 10:01  [ТС]
Да, все заработало.
0
Заблокирован
15.08.2021, 10:10  [ТС]
И вот вопрос, еще:
на ubuntu 21.04 этот код запускается и появляется полноценное gui-приложения для ubuntu 21.04,
gui-форма с текстом "hello world"..
Но запускается оно, только из терминала (консоли) ubuntu 21.04..

Как его запускать двойным щелчком левой кнопки мышки из самого интерфейса ubuntu 21.04 (xubuntu 21.04)?
Миниатюры
Возможно ли создать простое gui самому из терминала?   Возможно ли создать простое gui самому из терминала?  
0
188 / 89 / 35
Регистрация: 26.04.2021
Сообщений: 346
15.08.2021, 10:16
resto8, Оно и так должно запускаться по двойному клику, на крайний случай ПКМ->Выполнить, если стоит какое-то другое действие
Еще как вариант создать .desktop файл
0
Заблокирован
15.08.2021, 10:21  [ТС]
lindevel, Я понимаю.

Но у меня на xubuntu 21.04 повляется выбор, того, с помощью какого приложения запустить эту "созданную программу"..
При выборе, через xfce-terminal также не запускается.
Миниатюры
Возможно ли создать простое gui самому из терминала?  
0
Заблокирован
15.08.2021, 10:35  [ТС]
Вот эти строки, также "хороши":
C++
1
2
 gtk_window_set_title (GTK_WINDOW (window), "Window");
  gtk_window_set_default_size (GTK_WINDOW (window), 200, 200);
0
188 / 89 / 35
Регистрация: 26.04.2021
Сообщений: 346
15.08.2021, 10:36
resto8, Может там в свойствах файла не стоит разрешение на запуск?
0
Заблокирован
15.08.2021, 10:40  [ТС]
lindevel, Нет, же, bin файл, он не должен иметь "права на запись", он же должен быть в read-only "755".
Ну послушал Вас..написал права chmod 777, все равно все также, не запускается,
может быть потому что у меня xubuntu 21.04, а это xfce...
0
188 / 89 / 35
Регистрация: 26.04.2021
Сообщений: 346
15.08.2021, 10:42
resto8, Не запись, а запуск, я перепутал слова
У меня тоже Xfce и проблем с запуском нет, возможность запуска пропадает только в случае снятия разрешения на запуск
0
Заблокирован
15.08.2021, 12:14  [ТС]
lindevel, спасибо в любом случае.

Проверил, нужно было "ставить запуск" не через xfce-terminal, а через terminal-emulator...
да, все логично..xfce-terminal - это консольный терминал..а terminal-emulator работает в xfce, самой xubuntu...

Да, права сейчас поставил права 777 работает..но перед запуском еще появляется окно, терминала terminal-emulator,

Вот вопрос, как запускать этот bin-файл, как полноценное приложение в xubuntu (ubuntu), чтобы сразу появлялось окно
gtk4 этого приложения без отображения окна терминала (консоли)[ (B] terminal-emulator[/B] ) ???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.08.2021, 12:14
Помогаю со студенческими работами здесь

gui простое приложение
начала разбираться,но ещё не все понимаю мне нужно ввести два значения,потом при нажатии кнопки вычислить их произведение (либо провести ...

Возможно ли самому написать движок сайта?
Возможно ли самому написать движок сайта, и если дав сколько это займет времени?

Python GUI: создаём простое приложение с PyQt и Qt Designer
Хотел поинтересоваться по поводу этой статьи https://tproger.ru/translations/python-gui-pyqt/ (Python GUI: создаём простое приложение с...

Виджеты GUI в приложении PyGame, возможно ли?
Всем привет! Возможно ли как-то, с помощью сторонних библиотек, например, вставить виджеты, такие как в Thinker, в приложение PyGame? Или,...

Запуск qt программы из консоли с no-gui, возможно ли?
Программа десктопная. Возможно ли её запустить из командной строки без gui, как демон. Может быть есть какой то ключ, который нужно...


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

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru