Russian Qt Forum
Ноябрь 25, 2024, 02:22 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Получить список окон в mac os  (Прочитано 8481 раз)
virtual_root
Гость
« Ответ #15 : Июль 25, 2012, 15:25 »

только вот что-то по другому ключу не могу получить ничего..
Код
C++ (Qt)
CFStringRef title = (CFStringRef)CFDictionaryGetValue(dictionary,kCGWindowName);
Не подскажите почему? Может чтобы получать это значение нужно было заранее что-то описать?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #16 : Июль 25, 2012, 15:27 »

Интересно) а как вы в qt сделали файл с расширением .mm и как это скомпилировали ? Расскажите пожалуйста)
расширение можно прописать файлу любое. .mm – это исходник Objective-C++ (разрешает смешивать код Objective-C и C++). эти исходники подключаются в раздел OBJECTIVE_SOURCES, а заголовочные файлы Objective-C (в смысле где присутствуют какие-то специфические Objective-C-объявления типа @class, @interface, и т.п.) – соответствтенно в OBJECTIVE_HEADERS.
только вот что-то по другому ключу не могу получить ничего..
Код
C++ (Qt)
CFStringRef title = (CFStringRef)CFDictionaryGetValue(dictionary,kCGWindowName);
Не подскажите почему? Может чтобы получать это значение нужно было заранее что-то описать?
посмотри что там вообще в словаре есть с помощью CFShow(dictionary) (будет вывод в консоль)
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
virtual_root
Гость
« Ответ #17 : Июль 25, 2012, 15:32 »

уже разобралась, оказывается у не которых окон нет заголовков, они скрытые и возвращается значение 0, а я пытаюсь его в QString преобразовать Веселый
Переделала так:
Код
C++ (Qt)
  CFIndex cfiLen = CFArrayGetCount(arrayInform);
   CFDictionaryRef dictionary;
   for (CFIndex cfiI = 0; cfiI < cfiLen; cfiI++){
      dictionary = (CFDictionaryRef) CFArrayGetValueAtIndex(arrayInform, cfiI);
       CFStringRef name = (CFStringRef)CFDictionaryGetValue(dictionary,kCGWindowOwnerName);
       CFStringRef title = (CFStringRef)CFDictionaryGetValue(dictionary,kCGWindowName);
       qDebug()<<uniCFStrToQStr(name);
       if (title != 0) qDebug()<<uniCFStrToQStr(title)<<"!";
   }
 
Записан
virtual_root
Гость
« Ответ #18 : Июль 25, 2012, 15:35 »

Цитировать
расширение можно прописать файлу любое. .mm – это исходник Objective-C++ (разрешает смешивать код Objective-C и C++). эти исходники подключаются в раздел OBJECTIVE_SOURCES, а заголовочные файлы Objective-C (в смысле где присутствуют какие-то специфические Objective-C-объявления типа @class, @interface, и т.п.) – соответствтенно в OBJECTIVE_HEADERS.
Это в .pro файле прописывать надо?
OBJECTIVE_SOURCES и OBJECTIVE_HEADERS
А можно примерчик ? Вы наверное где-то файл .mm добавляете в .pro файле?
Записан
kambala
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 4747



Просмотр профиля WWW
« Ответ #19 : Июль 25, 2012, 15:51 »

да, в .pro. я же написал что в какой раздел добавлять (файлы .m (чистый Objective-C, без плюсов) кстати тоже в OBJECTIVE_SOURCES).
Записан

Изучением C++ вымощена дорога в Qt.

UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
virtual_root
Гость
« Ответ #20 : Июль 25, 2012, 18:13 »

спасибо буду пробовать)
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.202 секунд. Запросов: 23.