Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > C/C++: Программирование под Unix/Linux > Xlib + окно без рамки и русские шрифты |
Автор: NAYakaSL 12.5.2008, 04:40 |
Пишу, используя только Xlib. Надо сделать так, чтоб окно было без рамки. И еще один вопрос: как теми же средствами Xlib вывести русские буквы? Просто, если бы проблема была в шрифтах, то тогда почему заголовок тоже по-русски не пишется (пробовал созранять исходники в файлах с различной кодировкой). Может надо не символы писать, а прям коды? P.S.: Просмотрел форум на наличие смежных вопросов, но ответа нигде не нашел. Так что поднимаю эту тему вновь. P.P.S.: Всем, кто поможет, заранее, спасибо. |
Автор: NAYakaSL 17.5.2008, 01:28 |
Я, конечно, понимаю, что тут люди занятые и все такое. Но, может быть, все-таки поможете интересующемуся человеку. Ответьте, пожалуйста на мой вопрос. Еще раз повторяю: поиск по форуму ничего не дал! |
Автор: nickless 17.5.2008, 15:12 |
На Xlib мало кто пишет, ибо есть намного более удобные обёртки. Попробуй посмотреть исходники Qt или GTK+, они используют utf8, так что проблем с русским текстом там нет. |
Автор: Ken 17.5.2008, 17:49 |
Какой функцией пользуетесь для вывода текста? Xutf8DrawString () пробовали? Есть еще XwcDrawString (), в этом случае строку надо перевести в wchar_t* перед выводом. |
Автор: NAYakaSL 18.5.2008, 21:38 |
Спасибо, попробую, во только тогда вопрос: а для заголовка окна как сделать? Там же, вроде, передаешь параметр типа char*. Или есть другие варианты? Для оконных менеджеров можно и по-другому? |
Автор: Ken 19.5.2008, 07:14 | ||
Там тоже есть другие функции, например, XSetWMName. Который вроде берет строку с другой кодировкой. Посмотрите параметры. Я бегло попробовал, если честно, у меня тоже не получилось. Было бы время поиграться, анализировал бы как Qt или Gtk делают это. Кстати, кажется, результат еще зависит от оконного менеджера. Потому что видел случаев, когда, например, в КДЕ (kwin) русские заголовки нормально отображались, а у другого оконного менеджера нет. |
Автор: NAYakaSL 19.5.2008, 20:34 |
Еще раз, спасибо. Обязательно попробую. Недавно нашел информацию по созданию приложений без рамок: как оказалось - для каждого оконного менеджера это реализуется несколько разными параметрами. Видимо, с заголовками, да и вообще со всем, что касается WM, нужно реализвывать решения для их различных реинкарнаций. |
Автор: NAYakaSL 29.5.2008, 03:01 |
С рамками вроде бы проканало, а вот с русскими шрифтами - не совсем. Он грузит непонятно какие. И только если через XLoadQueryFont(), а если загружать шрифты для вывода строк utf8 или wchar_t, то он вообще никакие шрифты не обнаруживает. Может кто из знающих пороется? |
Автор: NAYakaSL 12.6.2008, 05:06 |
Судя по всему, из знающих - я сам. Впрочем, кое-что получилось, оказывается, что нобходимо специально указывать пути к папкам со шрифтами. Но это еще пол беды. Теперь такой вопос: можно ли стандартными средствами Xlib сделать прозрачность. Но не только полностью окон, а такую, чтоб некоторые части окна были не видны, как, например скины для того же xine'а. Жду ответов. Понимаю, что в последнее время программирование на Xlib неактуально, но если все разучатся писать на xlib, то кто же будет создавать новые версии qt и gtk+? P.S.: Еще один вопросик: получается так, что при работе данного приложения, оно постоянно мерцает, постоянно обновляется. Как это обойти? Если я не ошибаюсь, то какая-то подобная проблема есть и в WinAPI. Там она достаточно просто решается. Если подскажите, опять-таки, буду благодарен. |
Автор: andrew_121 13.6.2008, 21:56 |
А после такой фразы, думаю, никто и не поможет. |
Автор: NAYakaSL 16.6.2008, 18:05 |
nickless: спасибо. Да именно в документации я и искал, вот только нужно было конкретно знать, что нужно искать. Иначе - поиск не дает результатов. Теперь, надеюсь, получится. andrew_121: Обидеть никого не хотел, а сказал так лишь потому, что никто не ответил. Правда, теперь, благодаря nickless'у ситуация изменилась. Добавлено через 6 минут и 41 секунду По мере изучения появился еще один вопросик. Хочу пришить в прогу стили оформления, которые оформлялись бы в виде внешних файлов (формат не важен). Вопрос в следующем: как это лучше сделать - чтобы была функция, которая создает объект и заполняет его данными из файла (это я так, условно), или как-нибудь иначе можно? (использую язык c++). Как, например, реализована поддержка стилей в qt или gtk+? Если знает кто-нибудь. |
Автор: NAYakaSL 18.6.2008, 18:04 |
Тук-тук-тук! Попытайтесь ответить, пожалуйста. Перерыл все, что смог по последнему вопросу, но ответа не нашел. |
Автор: nickless 19.6.2008, 01:54 | ||
http://doc.trolltech.com/4.4/stylesheet.html
Делать можно как больше нравится, я бы сделал методы в классах для виджетов, для записи/чтения нужных данных (а так же рекурсивно данных всех детей) в/из файла. Можно подсмотреть принцип в сорцах Qt итд. |
Автор: gustavomarginale 6.7.2008, 00:14 | ||
У меня топикстартеровские вопросы касательно шрифтов. Я их нахожу вот так:
Находится что-то, в имени чего есть коивосемьар. На одной системе есть, на другой нет, в этом и печаль линуксическая. Как с собой шрифт таскать - незнаю. ![]() Добавлено через 12 минут и 39 секунд ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Хоть свой изготавливай и свою рендерилку впридачу. Всё вокруг GPL, но мне как-то идеология билла гейтса ближе, чем эта крокодиловая GPL. |