Полезни подробности при програмиране с Qt
Страницата е създадена на:15 април 2019 и редактирана на:16 май 2021
В тази част имам намерение да опиша как се провят редица малки, но полезни неща.
Добавяне на програмен код, необходим за отделна платформа
Ако е необходима Вашата програма, когато се изпълнява на определена платформа да изпълнява специфичен само за тази платформа код, то този код се отделя с директиви към компилатора:
#ifdef Q_OS_ИмеНаПлатформа
// Специфичен за платформата код
...
#else
// Код за всички останали платформи
...
#endif
Имената на поддържаните платформи може да намерите на страница:
https://doc.qt.io/qt-6/qtglobal.html
Поставяне номер на версията на програмата
Вижте тази статия:
http://www.openguru.com/2009/11/qt-best-way-to-set-application-version.html
Добавяне на икона за програмата
Разбира се, първо е необходимо с подходящ графичен редактор да се създадат файлове с изображението на иконата. Форматът на файловете, в които се съхранява иконата е различен за различни операционни системи. Как се добавя икона към Qt програма е описано на страницата:
http://doc.qt.io/qt-5/appicon.html
В Windows
Трябва първо да създадете иконата за своята програма с графичен редактор, който поддържа формат .ico и създаденият файл да запазите в директорията на проекта.
След това е достатъчно в .pro файла на проекта си да добавите ред:
RC_ICONS = myappico.ico
и да го компилирате.
В Mac OS X и iOS
Иконите на дадена програма в Mac OS X се съхраняват в специален файл с разширение .icns, който се поставя в директория Contents/Resources в изпълнимия пакет. Файлът с иконите се създава от Xcode при компилиране на проекта, но необходимите графични файлове трябва да се подготвят предварително с външен графичен редактор и да се добавят в Xcode проекта.
Ако с Qt Creator сте добавили към своя проект и целеви комплект за iOS устройства в директорията с компилацията, която Qt Creator създава, build-ИмеНаПроект-iphoneos-xxx-Debug или build-ИмеНаПроект-iphoneos-xxx-Release ще намерите файл ИмеНаПроект.xcodeproj. Този файл служи за отваряне на проекта с Xcode и допълването му с типични за Apple детайли, включително добавяне на икони. Проблемът е, че ако след задаване на тези настройки и компилиране с Xcode се направят нови промени с Qt Creator и се компилира проекта с Qt Creator, направените с Xcode промени се заличават и трябва да се повторят отново. В документацията на Qt добавянето на икони към iOS проекти е описано на страница http://doc.qt.io/qt-5/platform-notes-ios.html . Предложеното там решение е файлът Info.plist, в който Xcode запазва настройките на проекта, да бъде запазен и да се добави в .pro файла на проекта указание qmake да не генерира нов, а да използва запазения файл.
ios {
QMAKE_INFO_PLIST = ios/Info.plist
}
За да се добавят икони, проектът се отваря в Xcode. На страница General, раздел App Icons and Launch Images, срещу App Icons Source, ако се вижда бутон Use Asset Catalog, то се щраква върху него и се потвърждава мигриране от стария тип икони (вижте по-долу) към каталог от икони. След което на мястото на бутона се показва падащ списък и бутон стрелка след този падащ списък. Щракването върху бутона стрелка отваря прозорец, който показва съдържанието на набор от различни размери икони, предназначени за различните целеви платформи. С влачене и пускане върху местата за тези икони се слагат файлове с изображения. Желателно е размерите на изображенията във файловете да съответстват на размерите икони. Иначе се показват предупредителни съобщения. Размерът на най-малката икона 1х от всяка група икони се вижда от надписа под групата, например, 29pt съответства на икона с размери 29x29px, а размерите на по-големите 2x или 3х, се получават след умножение, съответно по 2 или 3.
В по-старите версии на Xcode .icns файл с икони се създаваше с програмата Icon Composer.app, която беше част от Xcode и се намираше в директория: /Developer/Application/Utilities. Наследник на тази програма е Icon Composer 2 http://www.lemonmojo.com/work След стартирането си тази програма показва един празен прозорец с няколко рамки, съответстващи на големините на иконите, които се използват в системата. Необходимо е: с друг графичен редактор да се създаде поне най-голямото изображение за икона с размер 512х512 px и след като бъде записано във файл, този файл да се "завлачи" върху прозореца на Icon Composer. Когато тази програма получи "хвърления" й файл, проверява размерите му и ако те не съвпадат с необходимите за икони размери, пита дали да го мащабира за да се получат и другите размери. При потвърдителен отговор се създават всички размери икони. В Icon Composer 2 всеки размер икони, включително и 1024х1024 px, трябва да се създаде с външен графичен редактор. На съответните места в прозореца на програмата се показва как ще изглеждат. Добре е файловите формати, в които се подготвя изображението на икона да поддържат прозрачност и пространството около иконата да е прозрачно, за да не закрива фона, където системата ще изобразява тази икона. Щом бъдат мащабирани и получени необходимите размери икони, с File - Save As те се записват във .icns файл. Запишете този файл в директорията на Вашия проект.
В .pro файла на проекта добавете реда:
ICON = myIcons.icns
Вместо myIcons, разбира се, трябва да напишете името на Вашия файл с икони, а ако той се намира в друга директория да посочите и пътя до него.
Това е всичко, след компилиране на проекта с qmake и make, се създава пакет, който в системата вече се изобразява със прибавените му икони.
В Linux
В конструктора на класа, представляващ главния прозорец на програмата добавете реда:
setWindowIcon(QIcon("hammer.png"));
където hammer.png е името на файла с изображение на икона.
Предишна страница: Работа с файлове
Следваща страница: Програмиране на Интернет операции