Совместное использование Qt с платформозависимыми API


Оглавление

Несмотря на то, что Qt предоставляет практически весь инструментарий, необходимый для реализации программ, иногда возникает необходимость в использовании технологий, связанных с конкретной платформой, или реализации кода низкого уровня. Прибегать к написанию платформозависимого кода нужно только в случаях острой необходимости. Помните, что если программа рассчитана на несколько платформ, то эти функции придется реализовывать для каждой поддерживаемой платформы. По возможности, рекомендуется весь платформозависимый код объединять в динамических библиотеках для отделения его от платформонезависимого. Но можно производить и смешивание, а чтобы на каждой из систем была задействована только нужная часть кода, следует воспользоваться директивами препроцессора, определенными специально для каждой из них. Участок программы, поддерживающей несколько операционных систем, может выглядеть следующим образом:


#if defined(Q_WS_WIN) 
//Реализация для Windows 
#elif defined(Q_WS_X11) 
//Реализация для Unix 
#elif defined(Q_WS_MAC)
//Реализация для MacOS 
#else 
//Не поддерживается 
#endif

Также Qt позволяет распознавать и саму платформу, в таблице указаны некоторые из препроцессорных определений.

Читать далее: Использование Windows API в Qt