how we can access data of one project within other project?
-
Mate, we can't guess your setup... you have to investigate yourself, or at least give us more data. This error sometimes pops up when QMake was not rerun (clean the project, run qmake, build again), but most probably the cause is different.
-
This is my both project which i am testing
@file_testing
main.cpp
#include <QtGui/QApplication>
#include "mainwindow.h"
#include "Documents and Settings/Pratik Agrawal/Desktop..........test1/mainwindow1.h"int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
MainWindow1 w1;
w1.show();
w.show();
return a.exec();
}mainwindow.cpp
#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
}mainwindow.h
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QtGui/QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
MainWindow(QWidget *parent = 0);
~MainWindow();
};#endif // MAINWINDOW_H
MainWindow::~MainWindow()
{
}file_testing.pro
#-------------------------------------------------Project created by QtCreator 2011-12-08T15:07:18
#-------------------------------------------------
QT += core gui
TARGET = file_testing
TEMPLATE = app
SOURCES += main.cpp
mainwindow.cppHEADERS += mainwindow.h
HEADERS = Documents and Settings/Pratik Agrawal/............../test1/mainwindow1.h
SOURCES = Documents and Settings/Pratik Agraw........../Qt gui prgm/test1/mainwindow1.cppOTHER_FILES +=
data.txt
N.txtRESOURCES +=
resource.qrc
@The project which i want to access
test1
@
main.cpp
#include <QtGui/QApplication>
#include "mainwindow1.h"int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow1 w;
w.show();return a.exec();
}
mainwindow1.cpp
#include "mainwindow1.h"MainWindow1::MainWindow1(QWidget *parent)
: QMainWindow(parent)
{
}MainWindow1::~MainWindow1()
{}
mainwindow1.h
#ifndef MAINWINDOW1_H
#define MAINWINDOW1_H#include <QtGui/QMainWindow>
class MainWindow1 : public QMainWindow
{
Q_OBJECTpublic:
MainWindow1(QWidget *parent = 0);
~MainWindow1();
};#endif // MAINWINDOW1_H
test1.pro
#-------------------------------------------------Project created by QtCreator 2011-12-12T09:55:33
#-------------------------------------------------
QT += core gui
TARGET = test1
TEMPLATE = appSOURCES += main.cpp
mainwindow1.cppHEADERS += mainwindow1.h
@ -
You've got spaces in your paths (file_testing.pro). That is why qmake understands "Documents" as a file. I don't remember what a remedy for that was in qmake. Try either to enclose the whole path in quotes, or insert '' in front of every space (probably won't work, as '' is used in a different manner in qmake).
Apart from that, I am not sure you can use 2 QMainWindows in a single app (I've never tried to, though. And I can't find anything against it in QMW documentation, so maybe it's OK).
-
@ w1.show();
w.show();@This will work.Two different windows will turn up but 'w' will be on top of 'w1' and so w1will be hidden.
Why don't you consider to make one ,the child of other?
-
[quote author="sierdzio" date="1323677232"]You've got spaces in your paths (file_testing.pro). That is why qmake understands "Documents" as a file. I don't remember what a remedy for that was in qmake. Try either to enclose the whole path in quotes, or insert '' in front of every space (probably won't work, as '' is used in a different manner in qmake).
Apart from that, I am not sure you can use 2 QMainWindows in a single app (I've never tried to, though. And I can't find anything against it in QMW documentation, so maybe it's OK).[/quote]
I have used two QMainWindow before also. Their is no problem in using that. As you have suggested
i have checked using double quotes but in that case also it is showing error that
@No rule to make target 'path/mainwindow1.cpp' needed by 'debug/mainwindow1.o' . Stop. @
I have checked removing spaces between the path also but i am getting the same error. -
OK noticed another issue. In your code, you have this (shortened a bit for convenience):
@
SOURCES += main.cpp
mainwindow.cppHEADERS += mainwindow.h
HEADERS = test1/mainwindow1.h
SOURCES = test1/mainwindow1.cpp
@The second invoke of HEADERS and SOURCES is followed by '=', which means it will overwrite previous entries. Try this instead (remember to use your own paths):
@
SOURCES += main.cpp
mainwindow.cpp
test1/mainwindow1.cppHEADERS += mainwindow.h
test1/mainwindow1.h
@ -
[quote author="sierdzio" date="1323681848"]OK noticed another issue. In your code, you have this (shortened a bit for convenience):
@
SOURCES += main.cpp
mainwindow.cppHEADERS += mainwindow.h
HEADERS = test1/mainwindow1.h
SOURCES = test1/mainwindow1.cpp
@The second invoke of HEADERS and SOURCES is followed by '=', which means it will overwrite previous entries. Try this instead (remember to use your own paths):
@
SOURCES += main.cpp
mainwindow.cpp
test1/mainwindow1.cppHEADERS += mainwindow.h
test1/mainwindow1.h
@[/quote]
On changing this i am getting undeclared error. -
Do you use shadow builds with Qt Creator?
-
The code you gave is working for me, except that i changed
the header in the first project 'file_testing' to
@#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QtGui/QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
MainWindow(QWidget *parent = 0);
~MainWindow(){};
};#endif // MAINWINDOW_H@
I felt, the destructor was improperly positioned ;)
-
[quote author="Volker" date="1323688757"]Do you use shadow builds with Qt Creator?[/quote]
yes i used shadow build.
-
[quote author="pratik041" date="1323690516"]
[quote author="Volker" date="1323688757"]Do you use shadow builds with Qt Creator?[/quote]yes i used shadow build.[/quote]
Then I'm not 100% sure whether the approach I suggested does actually work as the directory layout is a bit delicate in that case.
-
[quote author="Rahul Das" date="1323690185"]The code you gave is working for me, except that i changed
the header in the first project 'file_testing' to
@#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QtGui/QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
MainWindow(QWidget *parent = 0);
~MainWindow(){};
};#endif // MAINWINDOW_H@
I felt, the destructor was improperly positioned ;)[/quote]
Actually in my code i have used it properly while pasting the destructor is pasted wrongly.
Does you are able to access other project object in your code? -
yes. i compiled and its working. I used the relative path. May be you should also try.
-
[quote author="Rahul Das" date="1323690185"]The code you gave is working for me, except that i changed
the header in the first project 'file_testing' to
@#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QtGui/QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
MainWindow(QWidget *parent = 0);
~MainWindow(){};
};#endif // MAINWINDOW_H@
I felt, the destructor was improperly positioned ;)[/quote]
I have tried using relative path but i dont know why the error is coming can you post your code? -
The project to be imported is in a folder named 'a spaced folder'.
main.cpp
@#include <QtGui/QApplication>
#include "mainwindow.h"
#include "../a spaced folder/test2/mainwindow1.h"int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow w;
MainWindow1 w1;
w.show();
w1.show();
w1.setWindowTitle("this is imported");
return a.exec();
}@Header
@
#ifndef MAINWINDOW_H
#define MAINWINDOW_H#include <QtGui/QMainWindow>
class MainWindow : public QMainWindow
{
Q_OBJECTpublic:
MainWindow(QWidget *parent = 0);
~MainWindow(){}
};#endif // MAINWINDOW_H
@source
@#include "mainwindow.h"MainWindow::MainWindow(QWidget *parent)
: QMainWindow(parent)
{
}
@
@QT += core guiTARGET = test
TEMPLATE = appSOURCES += main.cpp
mainwindow.cpp "../a spaced folder/test2/mainwindow1.cpp"HEADERS += mainwindow.h "../a spaced folder/test2/mainwindow1.h"@
Project to be imported.
pro
@
QT += core guiTARGET = test2
TEMPLATE = appSOURCES += main.cpp
mainwindow1.cppHEADERS += mainwindow1.h@
header
@#ifndef MAINWINDOW1_H
#define MAINWINDOW1_H#include <QtGui/QMainWindow>
class MainWindow1 : public QMainWindow
{
Q_OBJECTpublic:
MainWindow1(QWidget *parent = 0);
~MainWindow1();
};#endif // MAINWINDOW1_H@
Source
@#include "mainwindow1.h"MainWindow1::MainWindow1(QWidget *parent)
: QMainWindow(parent)
{
}MainWindow1::~MainWindow1()
{
}
@main.cpp
@#include <QtGui/QApplication>
#include "mainwindow1.h"int main(int argc, char *argv[])
{
QApplication a(argc, argv);
MainWindow1 w;
w.show();return a.exec();
}@