Автоматически сгенерированная форма Qt предоставляет неправильный путь к файлам исходного кода

Я добавил файлы qcustomplot.h / .c в мой проект Qt. Они расположены в: «QT_PROJECT_DIR / QCustomPlot /».

Каждый раз, когда я использую конструктор в Qt Creator и собираю, я получаю эту ошибку в ui_mainwindow.h:

error: ../../qcustomplot.h: No such file or directory
#include "../../qcustomplot.h"

Это, конечно, верно, так как находится в: «QT_PROJECT_DIR / QCustomPlot /»

Как мне изменить, как Qt Designer автоматически генерирует этот путь?

Если это поможет, вот мой .pro:

#-------------------------------------------------
#
# Project created by QtCreator 2014-01-12T00:44:44
#
#-------------------------------------------------

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets widgets opengl printsupport

TARGET = Test
TEMPLATE = app

SOURCES += main.cpp\
mainwindow.cpp \
QCustomPlot/qcustomplot.cpp

HEADERS  += mainwindow.h \
QCustomPlot/qcustomplot.h

FORMS    += mainwindow.ui

CONFIG += mobility
MOBILITY =

3

Решение

Ваше включение кажется неправильным:

#include "../../qcustomplot.h"

Поскольку вы не добавляете папку QCustomPlot в свой INCLUDEPATH, вам нужно будет включить файл следующим образом:

#include "QCustomPlot/qcustomplot.h"

В качестве альтернативы, вы можете изменить INCLUDEPATH следующее:

INCLUDEPATH += $$QT_PROJECT_DIR/QCustomPlot/

и тогда вы можете включить заголовок без уродливой ../../ Относительная ссылка следующим образом:

#include "qcustomplot.h"

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

2

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

Я встретил ту же проблему и решил ее.

Это было вызвано путем объекта qcustomplot в xxx.ui,

Шаг 1: Откройте ***.ui файл, который содержит элемент qcustomplot.

Шаг 2: Щелкните правой кнопкой мыши элемент qcustomplot

Шаг 3: Дважды щелкните путь QCustomPlot, затем измените его на QCustomPlot/qcustomplot.cpp от ../../customplot,

Наконец, заголовок ui_***.h может автоматически включать QCustomPlot/qcustomplot.cpp, вместо ../../qcustomplot.h,

Мой родной язык не английский. Если вы обнаружите грамматическую ошибку в моем ответе, пожалуйста, сообщите мне. Позвольте мне исправить это.

0

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