Как получить абсолютный путь к файлу в cmake?

Рейтинг: 0Ответов: 0Опубликовано: 28.07.2023

Всем здравствуйте, вопрос: У меня есть кнопка, в конструкторе передаю ей картинки, как она должна выглядеть нажатой и не нажатой, а также звук, воспроизводимый при нажатии.

Проект собираю с помощью cmake, файлы лежат в директории проекта. Мне бы не хотелось писать в коде абсолютные пути к файлам вида /home/user/prj/.....

Есть ли возможность с помощью cmake получить пути к данным файлам и как-нибудь передать их в программу? В cmake вроде можно генерировать свои заголовки, в которые можно что-то записывать при сборке в зависимости от переменных самого cmake, но сам я так никогда не делал.

Хотелось бы вместо image_* и sound_pressed иметь либо подставляемые макросы, либо переменные. Буду благодарен за помощь.

ImageButton::ImageButton(QWidget *parent) {
setParent(parent);
setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
mButtonUpPixmap = QPixmap("image_pressed");
mButtonDownPixmap = QPixmap("image_unpressed");
mCurrentButtonPixmap = mButtonUpPixmap;
setGeometry(mCurrentButtonPixmap.rect());
player = new QMediaPlayer(this);
player->setMedia(QUrl::fromLocalFile("sound_pressed"));
connect(this, &QPushButton::clicked, this, &ImageButton::push);
connect(this, &QPushButton::clicked, this->player, &QMediaPlayer::play);

}

Ответы

Ответов пока нет.