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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> gcc, XCreateWindow - не видно окно 
:(
    Опции темы
TorBel
Дата 7.1.2011, 09:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Довольно давно занимаюсь программированием. Решил попробовать и под Linux. В качестве инструмента - gcc+Geany под Ubuntu.
С консольными приложениями немного побаловался, захотелось GUI.
Нашёл публикацию http://linuxgazette.net/issue78/tougher.html
С первым же примером
Код

#include <X11/Xlib.h>
#include <unistd.h>

main()
{
  // Open a display.
  Display *d = XOpenDisplay(0);

  if ( d )
    {
      // Create the window
      Window w = XCreateWindow(d, DefaultRootWindow(d), 0, 0, 200,
                   100, 0, CopyFromParent, CopyFromParent,
                   CopyFromParent, 0, 0);

      // Show the window
      XMapWindow(d, w);
      XFlush(d);

      // Sleep long enough to see the window.
      sleep(10);
    }
  return 0;
}

вышел облом: компилится и собирается нормально(только добавил тип int у функции main), запускается.
Но окно программы не видно, хотя оно создаётся - на панели задач появляется кнопка.
Если XCreateWindow заменить на XCreateSimpleWindow, то окно видно.
Почему его не видно при использовании XCreateWindow?

Команда сборки "gcc -Wall -o "%e" "%f" -lX11"
Окно не видно ни при запуске в Geany, ни при запуске из Nautilus.
В "Переключатель рабочих мест" миниатюра "невидимого" окна отображается.
Поиск по XCreateWindow делал, ничего путного не нашёл.
PM MAIL   Вверх
svlary
Дата 7.1.2011, 15:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(TorBel @  7.1.2011,  09:34 Найти цитируемый пост)
Но окно программы не видно


  Проверил. Скомпилировал, запустил - окно появляется! Запускал и из командной строки в консоли и из Alt/F2 и даже как пункт в меню запуска вставлял.
Другое дело, что окно - прозрачное. Видно только рамку. Может Вы где-то не там глядите ? Попробуйте после запуска учебной програмыы закрыть ВСЕ окна всех запущенных приложений - может оно где-то там прячется ?
PM MAIL   Вверх
TorBel
Дата 8.1.2011, 09:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



svlary, закрывал всё - даже рамку не видно.
Пока сам возился, нашёл, что если курсор мыши подвести к предполагаемому месту размещения окна - можно изменить его размер, перетащить, но оно прозрачно.
Если задать бордюр отличный от 0, то окно появляется, но с прозрачной клиентской областью.
Спасибо за ответ.

Это сообщение отредактировал(а) TorBel - 8.1.2011, 09:13
PM MAIL   Вверх
svlary
Дата 8.1.2011, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(TorBel @  8.1.2011,  09:08 Найти цитируемый пост)
окно появляется, но с прозрачной клиентской областью

  Вот я как раз это и имел в виду! 
А вобще, мне не очень понятно, зачем Вы связались с библиотекой Х-ов, если говорите, что 
Цитата

Решил попробовать и под Linux.

  Это не самый легкий путь для новичка. Настоятельно рекомендую посмотреть на Qt. Достоинства :
  • Есть куча литературы, в том числе - на русском языке (http://www.ibm.com/developerworks/ru/library/l-qt_1/index.html?S_TACT=105AGX99&S_CMP=GR01#mai)
  • Есть графический дизайнер форм и не один.(http://qt.nokia.com/products/developer-tools?currentflipperobject=821c7594d32e33932297b1e065a976b8)
  • Есть интеграция с IDE типа KDevelop или аналогичными.
  • Полученные программы без проблем переносятся под винду....

PM MAIL   Вверх
TorBel
Дата 9.1.2011, 14:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Цитата(svlary @  8.1.2011,  19:17 Найти цитируемый пост)
А вобще, мне не очень понятно, зачем Вы связались с библиотекой Х-ов ... Это не самый легкий путь для новичка.

Ну в программировании я далеко не новичок. Это я в Linux только начинающий. А на счёт иксов, скажем так, у меня хобби - маленькие программки(не нравится, когда программа считающая 2х2 имеет размер в мегабайт). Да и, как я понимаю Qt и GTK программы требуют установки соответствующих библиотек, а иксы всё же имеются в большинстве дистрибутивов Linux с GUI.
Но, возможно, всё же передумаю, и первые программы напишу под GTK, а потом вернусь к иксам.

Добавлено @ 14:13
В качестве IDE, пожалуй, остановлюсь на Code::Blocks - есть опыт использования под Windows.

Это сообщение отредактировал(а) TorBel - 9.1.2011, 14:13
PM MAIL   Вверх
svlary
Дата 10.1.2011, 06:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


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

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



Цитата(TorBel @  9.1.2011,  14:10 Найти цитируемый пост)
Qt и GTK программы требуют установки соответствующих библиотек

   Разумеется! Но ведь, если на вашем компе стоит Gnome - значит и библиотеки GTK у Вас уже установлены! А если KDE - то и Qt-шные библиотеки есть.  (run-time) Другое дело, что если Вы хотите не просто использовать, но и РАЗРАБАТЫВАТЬ программы для этих библиотек, то понадобятся соответствующие средства разработки.

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

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

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


 




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


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

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