Qt template specialization error and linking issues
-
Hi Thanks for the reply
@#ifndef BLACKMAINWINDOW_H
#define BLACKMAINWINDOW_H#include <ui_blackmainwindow.h>
#include <QDataStream>namespace Ui {
class blackMainWindow;
}class blackMainWindow : public QMainWindow, private Ui::blackMainWindow
{
Q_OBJECTpublic:
explicit blackMainWindow(QWidget *parent = 0);
~blackMainWindow();private:
playerWidget* blackFramePlayerWidget; QPushButton* showHideConfigurationButton; QScrollArea* scrollArea; MediaFile_ptr sourceFilePointer; QSharedPointer<Track> detectedBlackTrack; QSharedPointer<Track> detectedShotTrack; MetadataBundle *metaDataBundle; QString sourceFilePath; QSharedPointer<Timecode> startTimecode; QSharedPointer<Timecode> endTimecode; fileInfo_t fileInfo; bool runningBlackFrameDetection; bool runningShotDetection;
signals:
void setupFileSignal(QString); void startBlackFrameDetectionSignal(QSharedPointer<Track>); void startShotDetectionSignal(QSharedPointer<Track>); void startGeneratingXMLSignal(QString, MetadataBundle*); void clearAllSignal(); void loadProfilesSignal(); void checkForAutomaticDetectionSignal();
public slots:
void chooseConfigurationTabToShow(int index); void showHideConfigurationWidget(bool checked); void chooseSettingsTabToShow(int index); void chooseAnalysisTabToShow(int index); void openFile(QString filePath); void setBlackTrackOnPlayer(); void setBlackTrackOnAnalysisWidget(); void setShotTrackOnPlayer(); void setShotTrackOnAnalysisWidget(); void detectBlackFrames(); void detectBlackFramesFinished(); void detectShots(); void detectShotsFinished(); void generateXMLReport(); QString getBaseNameOfDpxFile(QString file);
};
#endif @
I hope this helps
-
yeah i did regenerate the ui_blackmainwindow.h
I cleaned the project and then ran qmake and then built the project
@#ifndef UI_BLACKMAINWINDOW_H
#define UI_BLACKMAINWINDOW_H#include <QtCore/QVariant>
#include <QtWidgets/QAction>
#include <QtWidgets/QApplication>
#include <QtWidgets/QButtonGroup>
#include <QtWidgets/QDockWidget>
#include <QtWidgets/QFrame>
#include <QtWidgets/QHBoxLayout>
#include <QtWidgets/QHeaderView>
#include <QtWidgets/QMainWindow>
#include <QtWidgets/QMenuBar>
#include <QtWidgets/QPushButton>
#include <QtWidgets/QSpacerItem>
#include <QtWidgets/QStackedWidget>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QWidget>
#include "blackframewidget.h"
#include "blackinfowidget.h"
#include "blacksettingswidget.h"
#include "blackshotsettingswidget.h"
#include "blackshotwidget.h"
#include "blacksourcewidget.h"
#include "blackxmlsettingswidget.h"
#include "blackxmlwidget.h"
@actually the quuid stuff resides in another source file which is then added to the header here is an instance.
@void blackSettingsWidget::saveSettings()
{
QUuid blackFrameId;
QString blackFrameName = blackFrameProfileNameLineEdit->text();
int blackFrameIndex = blackFrameProfileComboBox->findText(blackFrameName);if (blackFrameIndex == -1) { blackFrameId = QUuid::createUuid(); blackFrameProfileComboBox->addItem(blackFrameName, blackFrameId.toString()); } else { blackFrameId = QUuid(blackFrameProfileComboBox->itemData(blackFrameIndex).toString()); } //TO DO verifyBlackFrameSettings(); saveBlackFrameSettings(blackFrameId, blackFrameName); blackFrameProfileComboBox->setCurrentIndex(blackFrameProfileComboBox->findText(blackFrameName)); setupBlackFrameSettings(blackFrameId); returnBlackSettingsToNormal(); emit reloadBlackFrameProfilesSignal();
}
void blackSettingsWidget::saveBlackFrameSettings(QUuid id, QString name)
{
blackFrameParameters* parametersB= new blackFrameParameters();
blackFrameSettings* blackFrame = new blackFrameSettings(parametersB);blackFrame->setId(id); blackFrame->setName(name); blackFrame->setDetectBlackOption(automaticallyDetectBlackFramesCheckBox->checkState()); blackFrame->setDetectBlackLevel(detectBlackLevelLineEdit->text().toUInt()); blackFrame->setDetectBlackFrameMinimum(detectBlackMimimumFramesLineEdit->text().toUInt()); blackFrame->setDetectBlackMethod(detectBlackMethodComboBox->currentIndex()); int setB = dataBasePointer->setSettingInDataBase(parametersB, dataBase::BLACKFRAME); if (setB) { QMessageBox::critical(this, tr("Error"), tr("Data Base Error.\n\n%1").arg(dataBasePointer->warningErrorMessage)); return; }
}@
-
You do not use extern "C" anywhere, right?
I created a small project with QUuid and I was not able to reproduce the problem.
I build it in Qt 4.8.5, 5.2.1, and 5.3.0I guess you will need to comment out the suspicious lines one by one and try to find what particular line cause this error.
-
i tried doing that .. but unfortunately i had like a lot of errors. that too in the in the qt header files ...so i suspect what i am doing is wrong.. another thing to mention here is that all my source files when i individually compile compile well but when i compile the entire project that's when i get into trouble.