не может загрузить файлы qrc в программу Qt C ++

Я пытаюсь загрузить файл CSS в программу, используя qrc. Но во время выполнения получить следующую ошибку: —

QIODevice::read (QFile, ":/css/stylesheet.qss"): device not open

Я использую Cmake. Вот структура моего проекта: —

.
├── calculator.cpp
├── calculator.h
├── calculator.ui
├── CMakeLists.txt
├── CMakeLists.txt.user
├── css
│   └── stylesheet.qss
├── main.cpp
└── resources.qrc

cmake файл: —

cmake_minimum_required(VERSION 3.9)

project(Calculator)

set(CMAKE_VERBOSE_MAKEFILE ON)
set(CMAKE_INCLUDE_CURRENT_DIR ON)

set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS}  -Wall -Wpedantic -Wextra -std=gnu++14")

find_package(Qt5Widgets REQUIRED)

set(CMAKE_AUTOMOC ON)
set(CMAKE_AUTOUIC ON)
set(CMAKE_AUTORCC ON)add_executable(${PROJECT_NAME} main.cpp calculator.cpp )
target_link_libraries(Calculator Qt5::Widgets)

и вот файл main.cpp, который использует файл qrc:

#include <QApplication>
#include <QFile>
#include "calculator.h"#include <QtDebug>

int main(int argc,char **argv)
{
QApplication *app= new QApplication(argc,argv);
//  Q_INIT_RESOURCE(resources);

QFile css(":/css/stylesheet.qss");
if(css.open(QIODevice::ReadOnly ))
{
app->setStyleSheet(css.readAll());
css.close();
}else
{
qDebug("Failed") ;
qDebug(css.readAll());
}

Calculator *cal = new Calculator(nullptr);
cal->show();

return  app->exec();

}

и вот файл resources.qrc: —

<RCC>
<qresource prefix="/">
<file>css/stylesheet.qss</file>
</qresource>
</RCC>

когда я пытаюсь запустить, я получаю такой вывод:

qt5ct: using qt5ct plugin
Failed
QIODevice::read (QFile, ":/css/stylesheet.qss"): device not open

Я использую Arch linux и gcc (GCC) 7.3.1 с QtCreator. Я новичок в cmake и Qt.

1

Решение

Добавьте ресурс в add_executable()

add_executable(${PROJECT_NAME} main.cpp calculator.cpp resources.qrc) // added qrc
3

Другие решения

пожалуйста, добавьте ваш QRC ресурс в ваш makefile.

RESOURCES += resources.qrc
1

По вопросам рекламы [email protected]