Модераторы: xvr
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Gtk через ООП?.. С++ 
:(
    Опции темы
Kurt
Дата 7.7.2005, 01:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: нет
Всего: 36



Поглядываю потихоньку на GTK.
Раздражает процедурный стиль написания кода. Нет ли возможности описания GUI через самописные классы?
Пробовал сделать нечто типа такого
Код

class MainWindow
{
private:
           GtkWidget *window;
public:
    MainWindow();    
};
..
MainWindow::MainWindow()
{
    window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
    gtk_signal_connect (GTK_OBJECT (window), "destroy", GTK_SIGNAL_FUNC(gtk_main_quit), NULL);
    gtk_widget_show(window);
    return;
}
....

int main(int argc, char *argv[])
{

    MainWindow w;
    
    gtk_main();

    return 0;
}

Нормально компилится, но при запуске ругается благим матом. Как это правильно оформить через ООП?
Знаю, есть специальные либы под это дело, но я сейчас на таком этапе изучения, что дополнительные библиотеки лишь распыляют внимание.


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
vadims
Дата 7.7.2005, 13:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 305
Регистрация: 8.6.2005

Репутация: нет
Всего: 17



А на что и как именно ругается ???


--------------------
Cpu not found ! Press any key for software emulation.
PM MAIL   Вверх
Mayk
Дата 7.7.2005, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


^аВаТаР^ сообщение>>
****


Профиль
Группа: Участник
Сообщений: 2616
Регистрация: 22.5.2005
Где: за границей разум а

Репутация: 5
Всего: 134



Попадался C++ порт GTK. Вот что в гугле находится по этому поводу:
Цитата(http)

gtkmm
gtkmm is the official C++ interface for the popular GUI library GTK+. Highlights include typesafe callbacks, widgets extensible via inheritance and a comprehensive set of widgets. You can create user interfaces either in code or with the Glade designer, using libglademm. Here's an overview, with documentation and status. gtkmm is free software distributed under the GNU Library General Public License

Хотя среди OOPшных UI рулит QT.


--------------------
 Здесь был кролик. Но его убили.
Человеки < кроликов, йа считаю.
PM MAIL WWW ICQ   Вверх
Kurt
Дата 7.7.2005, 14:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Увлеченный
***


Профиль
Группа: Участник Клуба
Сообщений: 1662
Регистрация: 22.8.2003
Где: Краснодар

Репутация: нет
Всего: 36



Народ, извиняюсь - мой косяк.
Я забыл вставить в начале main-ф-ции gtk_init(). Вот оно и не работало. Надо спать по ночам. smile
Всем спасибо.
...
Цитата
Хотя среди OOPшных UI рулит QT.

Согласен. На эту библиотеку я тоже посматриваю, но такое ощущение, что она тяжелее, чем Gtk, да и лицензионное соглашение Qt меня не совсем устраивает.


--------------------
Для корабля, который не знает куда плыть, нет попутного ветра... ((С) Архимед)
...
Все знают, что это невозможно. Но случайно находится невежда, который этого не знает. Он-то и делает открытие.. ((С) А. Эйнштейн)
PM ICQ   Вверх
Kappac
Дата 4.10.2006, 10:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 203
Регистрация: 30.9.2006
Где: Украина, Киев

Репутация: нет
Всего: нет



Ничем она не тяжелее! По поводу лицензии согласен... Всякие прелести типа QAxObject(ActiveX, COM) покупать надо с комерческой версией... Или писать самому! :-)
--------------------
                                                                                     
PM MAIL ICQ Skype   Вверх
powerfox
Дата 4.10.2006, 15:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 5
Всего: 97



Но зато Qt кроссплатформенна. А gtk под вынь, кажется, только седежное (или вообше нет). В винде Qt использует родные библиотеки, а в линуксе, если выиспользуете KDE, вы сразу используете родные лайбы


--------------------
user posted image
PM WWW   Вверх
kirjanov
Дата 4.10.2006, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 326
Регистрация: 22.1.2006
Где: Dark wood of erro r

Репутация: 3
Всего: 15



Цитата(powerfox @  4.10.2006,  15:31 Найти цитируемый пост)
Но зато Qt кроссплатформенна. А gtk под вынь, кажется, только седежное (или вообше нет). В винде Qt использует родные библиотеки, а в линуксе, если выиспользуете KDE, вы сразу используете родные лайбы

А при чем здесь винда? И что значит родные либы?
PM MAIL   Вверх
powerfox
Дата 4.10.2006, 17:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 5
Всего: 97



Цитата(kirjanov @  4.10.2006,  16:42 Найти цитируемый пост)
А при чем здесь винда?

При том, что gui можно будет без изменений портировать, если что.

Цитата(kirjanov @  4.10.2006,  16:42 Найти цитируемый пост)
И что значит родные либы?

KDE сидит на qt, поэтому в никсах реализация qt3 прозрачна: немного хорга + много своего. В винде и макОС qt реализован через родные библиотеки осей (для винды это winAPI). То есть в винде qt - абстракция для виндовых лайб.


--------------------
user posted image
PM WWW   Вверх
MAKCim
Дата 4.10.2006, 20:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Воін дZэна
****


Профиль
Группа: Экс. модератор
Сообщений: 5644
Регистрация: 10.12.2005
Где: Менск, РБ

Репутация: 84
Всего: 207



Цитата

То есть в винде qt - абстракция для виндовых лайб. 

В любом случае любая кроссплатформенная библиотека - эта абстракция над низкоуровневыми возможностями системы
Для M$ - Win API, для *IX - Xlib, которая в частности все равно с помощью интерфейса system call-ов реализована
Так что винда здесь не причем


--------------------
Ах, у елі, ах, у ёлкі, ах, у елі злыя волкі ©

PM MAIL   Вверх
powerfox
Дата 9.10.2006, 23:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


I wanna fork()
****


Профиль
Группа: Комодератор
Сообщений: 3990
Регистрация: 1.10.2005
Где: Санкт-Петербург

Репутация: 5
Всего: 97



Цитата(MAKCim @  4.10.2006,  21:31 Найти цитируемый пост)
Так что винда здесь не причем

Если мне не изменяет мой мозг, то в линуксе qt использует свой движок прорисовки виджетов (для qt4 - Артур), а в винде мастдаевский. В этом и разница.


--------------------
user posted image
PM WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Программирование под Unix/Linux"
xvr
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой "Код".
  • Вопросы мобильной разработки тут
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, xvr.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Программирование под Unix/Linux | Следующая тема »


 




[ Время генерации скрипта: 0.0613 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.