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

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

Страниц: [1]   Вниз
  Печать  
Автор Тема: Проверка версии приложения в исходниках  (Прочитано 4991 раз)
dr_Begemot
Гость
« : Март 09, 2010, 11:01 »

В pro-файле приложения на Qt можно прописать версию приложения:
VERSION       = 1.0.0

Как мне проверить в исходном коде версию?
Поясню... К примеру в первой версии было:
class MyClass : public QWidget
...
Потом я создал новый pro-файл, где:
VERSION       = 2.0.0
Исходные файлы все остались теми же самыми.
Во второй я решил унаследоваться от QGLWidget:
class MyClass : public QGLWidget

Хочу чтобы было что-то вроде
Код:
#ifdef <тут проверка, что версия >= 2.0.0>
class MyClass : public QGLWidget
#else
class MyClass : public QWidget
#endif
Записан
gogi
Гость
« Ответ #1 : Март 09, 2010, 11:23 »

Можно сделать костыль. В pro-файле генерируешь заголовочный файл и его подключаешь по include. Таким образом версия задаётся в одном месте и программа про неё знает.
Записан
dr_Begemot
Гость
« Ответ #2 : Март 09, 2010, 11:31 »

Можно сделать костыль. В pro-файле генерируешь заголовочный файл и его подключаешь по include. Таким образом версия задаётся в одном месте и программа про неё знает.

Данное решение не подходит, т.к. данная проверка могла бы использоваться и в других местах программы...
Сам я как вариант вижу объявления своего define в pro-файле, который говорил бы о том, что версия 2.0, но мне почему-то кажется что можно узнать версию компилируемого приложения в исходниках - это было бы наиболее элегантным решением...
Записан
NicK
Гость
« Ответ #3 : Март 09, 2010, 13:39 »

#define VERSION_NUMBER "0.0.1"
Записан
dr_Begemot
Гость
« Ответ #4 : Март 09, 2010, 14:04 »

#define VERSION_NUMBER "0.0.1"


И что? Внимательней читайте вопрос... Вопрос состоял в том, как узнать версию, прописанную в pro-файле, а не как объявить define.
Записан
dr_Begemot
Гость
« Ответ #5 : Март 09, 2010, 14:09 »

Можно сделать костыль. В pro-файле генерируешь заголовочный файл и его подключаешь по include. Таким образом версия задаётся в одном месте и программа про неё знает.

Уж тогда чтобы не городить огород, достаточно прописать в pro-файле что-то вроде:
DEFINES   += VERSION_2
Записан
NicK
Гость
« Ответ #6 : Март 09, 2010, 23:32 »

#define VERSION_NUMBER "0.0.1"


И что? Внимательней читайте вопрос... Вопрос состоял в том, как узнать версию, прописанную в pro-файле, а не как объявить define.

Заголовок треда "Проверка версии приложения в исходниках". Вот я и предложил, как самый простой вариант: объявить define, например, где-нибудь в заголовочном файле и из любого места обращаться через него к объявленной версии. И не надо будет заморачиваться с .pro файлом.
Записан
Alex Custov
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 2063


Просмотр профиля
« Ответ #7 : Март 10, 2010, 03:40 »

Я нигде нашёл, как эта перменная используется. Возможно, что вообще никак. Тогда механизм версионирования надо писать самому, по аналогии с QT_VERSION
Записан
crackedmind
Гость
« Ответ #8 : Март 10, 2010, 03:58 »

Цитировать
Тогда механизм версионирования надо писать самому, по аналогии с QT_VERSION
вы не поверите...
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


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