Здравствуйте, гость ( Вход | Регистрация )
kwisp | Дата 7.4.2009, 14:29 |
Все просто не думаю что все так просто. будет время уговорю товарища снимем мувиё по данному вопросу. чтоб нагдядно увидеть |
|
Kagami | Дата 7.4.2009, 14:09 |
Если у пользователя есть право подключаться к дисплею, у него будет эта переменная окружения. Нет права - нет переменной. Все просто Правда возможен случай когда запущено несколько дисплеев для разных пользователей... | |
kwisp | Дата 7.4.2009, 12:56 |
Если бы взглянули в документацию, то все было бы понятнее: спасибо за экскурс в документацию мы проверяем наличие переменной DISPLAY. Если она есть, то в конструктор пойдет true может я не совсем понятно выазил свою мысль. однако, значение переменной не даст ничего насколько я понимаю. она может существовать и при остановленных иксах. короче пример из ассистента говорит нам штатной ситуации. получатся круг систем(в смысле различных машин) на которых программа будет работать корректно существенно съужается. для меня это ни есть хорошо. мне надо наверняка. + как узнать имеются ли права подключаться к иксам? |
|
Kagami | Дата 7.4.2009, 10:57 |
При штатной остановке он ее вычищает сам | |
Litkevich Yuriy | Дата 7.4.2009, 10:50 |
мы проверяем наличие переменной DISPLAY ну есть эта переменная, а X-сервер остановлен, разве такого не может быть? |
|
Kagami | Дата 7.4.2009, 10:29 |
Если бы взглянули в документацию, то все было бы понятнее: Цитата QApplication::QApplication ( int & argc, char ** argv, bool GUIenabled ) Constructs an application object with argc command line arguments in argv. If GUIenabled is true, a GUI application is constructed, otherwise a non-GUI (console) application is created. Таким образом, если программа запущена под иксами, мы проверяем наличие переменной DISPLAY. Если она есть, то в конструктор пойдет true и мы получим графическое приложение. Если не найдем, то у нас получится консольное приложение в котором мы выведем сообщение и выйдем. Чего может быть проще? |
|
Litkevich Yuriy | Дата 7.4.2009, 9:56 |
я неочень хорошо понимаю эту тему, но примерчик из жизни в openSUSE. Если я сидя в кедах открою, в них, консоль. Затем наберу YaST2, этот самый YaST стартанет в консоли, чего-то там напишет, а потом появится в кедах окно YaST'а. Если же я переключу виртуальный терминал (Alt+Ctrl+Fn) и в нем наберу тоже самое, YaST запустится в этом терминале в режиме псевдографики (ncurses). Может ковырнуть его исходники (хотя там можно все конечности сломать) |
|
kwisp | Дата 7.4.2009, 9:01 |
значение переменной не даст ничего насколько я понимаю. она может существовать и при остановленных иксах. тут вопрос на самом деле оказался еще шире. должен присутствовать способ узнатьв линуксе запущены ли иксы и имеет ли право программа на графическое представление. может ли рисовать? вот переррыли с товарищем документацию пока безуспешно. даже в коде искали что нить подобное. могу привести из ассистента странный пример по моему: Раскрывающийся текст
вот тут странно. проверяется с помощью #define под иксами запускаем или нет если под иксами то проверяем существует ли значение переменной "DISPLAY" потом независимо от результата создается объект QApplication который при отсутствии иксов валит программу с сообщением Цитата Cannot connect to X-server и только потом происходит проверка есть ли дисплей или нет.... короче странный пример помоему. |
|
Kagami | Дата 6.4.2009, 15:45 |
Поглядеть значение переменной окружения DISPLAY? | |
kwisp | Дата 6.4.2009, 14:54 |
собственно. как узнать запущен ли X-сервер на момент запуска программы??? | |
Просмотр темы полностью (откроется в новом окне) | |
Текстовая версия | Сейчас: 29.3.2024, 18:03 |