![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
TiiL |
![]()
Сообщение
#1
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Сначала о струтуре всего что делаю:
1-ое запускается приложение, по нажатию кнопки гоу запускается функция допустим fat(), какими нибудь параметрами. 2-ое функция fat() находиться в библиотеке(созданная для множества приложений), в ней ведутся вычисления, в своё время после вычислений функция вызывает функцию plot()(которая рисует графики). вот и подошел к вопросу: поясните мне ,как подключить мою функцию plot в эту библиотеку: что получается, разработал приложение на qwt которое рисует графики: структура моего приложения: Раскрывающийся текст
имитация функции fat() Раскрывающийся текст
имитация функции plot Раскрывающийся текст
как я всё это вижу я должен разделить своё приложение на 1-ое диалоговое окно в котором всё это рисуется, 2-ое на функции которые рисуют сами линии графиков, какой функцией будет запускать моё диологовое окно этого для меня загадка( PS Извените если что не понятно, если что задавайте вопросы. буду отвечать Сообщение отредактировал TiiL - 1.3.2012, 9:36 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
TiiL |
![]()
Сообщение
#3
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Присоединил я к проекту библиотеки свой файл содержащие функцию plot и хедер с объявлением фукнции plot_first. вот как это выглядит:
файл plot_fat(): Раскрывающийся текст
файл mainwindow.h Раскрывающийся текст
и вылезают такие ошибки: Раскрывающийся текст In file included from ..\..\Qt\2010.05\qt\include/QtCore/qshareddata.h:1, from ..\..\Qt\2010.05\qt\include/QtCore/../../src/corelib/tools/qsharedpointer.h:47, from ..\..\Qt\2010.05\qt\include/QtCore/qsharedpointer.h:1, from ..\..\Qt\2010.05\qt\include/QtGui/../../src/gui/image/qpixmap.h:49, from ..\..\Qt\2010.05\qt\include/QtGui/qpixmap.h:1, from ..\..\Qt\2010.05\qt\include/QtGui/../../src/gui/painting/qbrush.h:53, from ..\..\Qt\2010.05\qt\include/QtGui/qbrush.h:1, from ..\..\Qt\2010.05\qt\include/QtGui/../../src/gui/kernel/qpalette.h:47, from ..\..\Qt\2010.05\qt\include/QtGui/qpalette.h:1, from ..\..\Qt\2010.05\qt\include/QtGui/../../src/gui/kernel/qwidget.h:49, from ..\..\Qt\2010.05\qt\include/QtGui/qwidget.h:1, from ..\..\Qt\2010.05\qt\include/QtGui/../../src/gui/dialogs/qdialog.h:45, from ..\..\Qt\2010.05\qt\include/QtGui/qdialog.h:1, from ..\..\Qt\2010.05\qt\include\QtGui/../../src/gui/dialogs/qmessagebox.h:45, from ..\..\Qt\2010.05\qt\include\QtGui/qmessagebox.h:1, from ..\..\Qt\2010.05\qt\include\QtGui/QMessageBox:1, from ./mainwindow.h:8, from plot_fat.cpp:28: ..\..\Qt\2010.05\qt\include/QtCore/../../src/corelib/tools/qshareddata.h:165: error: expected identifier before '(' token как быть и что делать? |
|
|
TiiL |
![]()
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Разобрался со своими ошибками и проблемами.
но вот почему когда я делал include <mainwindow.h> перед самой функцией plot_fat, были ошибки описанные в посте выше, а когда поставил в самое начало файла тоже самое объявление то ошибки исчезли? |
|
|
TiiL |
![]()
Сообщение
#5
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 124 Регистрация: 8.6.2011 Пользователь №: 2727 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
с выше изложенными проблемами разобрался... теперь эту библиотеку подключаю, к проекту...
вылезли вот такие ошибки: ../grathQWT/debug/libgrathQWT.a(mainwindow.o): In function `MainWindow': C:\MyProjects\grathQWT/../../Qt/2010.05/qt/include/QtCore/../../src/corelib/arch/qatomic_i386.h:125: multiple definition of `MainWindow::MainWindow(QWidget*)' debug/mainwindow.o:C:\MyProjects\fatigue/mainwindow.cpp:59: first defined here ../grathQWT/debug/libgrathQWT.a(mainwindow.o): In function `MainWindow': C:\MyProjects\grathQWT/mainwindow.cpp:6: multiple definition of `MainWindow::MainWindow(QWidget*)' debug/mainwindow.o:C:\MyProjects\fatigue/mainwindow.cpp:59: first defined here ../grathQWT/debug/libgrathQWT.a(mainwindow.o): In function `~MainWindow': C:\MyProjects\grathQWT/mainwindow.cpp:53: multiple definition of `MainWindow::~MainWindow()' debug/mainwindow.o:C:\MyProjects\fatigue/mainwindow.cpp:71: first defined here ../grathQWT/debug/libgrathQWT.a(mainwindow.o):C:\MyProjects\grathQWT/mainwindow.cpp:56: multiple definition of `non-virtual thunk to MainWindow::~MainWindow()' debug/mainwindow.o:C:\MyProjects\fatigue/mainwindow.cpp:74: first defined here ../grathQWT/debug/libgrathQWT.a(mainwindow.o): In function `~MainWindow': C:\MyProjects\grathQWT/mainwindow.cpp:53: multiple definition of `MainWindow::~MainWindow()' debug/mainwindow.o:C:\MyProjects\fatigue/mainwindow.cpp:71: first defined here ../grathQWT/debug/libgrathQWT.a(mainwindow.o):C:\MyProjects\grathQWT/mainwindow.cpp:56: multiple definition of `non-virtual thunk to MainWindow::~MainWindow()' debug/mainwindow.o:C:\MyProjects\fatigue/mainwindow.cpp:74: first defined here ../grathQWT/debug/libgrathQWT.a(mainwindow.o): In function `~MainWindow': C:\MyProjects\grathQWT/mainwindow.cpp:53: multiple definition of `MainWindow::~MainWindow()' debug/mainwindow.o:C:\MyProjects\fatigue/mainwindow.cpp:71: first defined here collect2: ld returned 1 exit status что интересно: когда библиотеку подключил более простому проекту Код: #include <QtGui/QApplication> #include "dialog.h" int main(int argc, char *argv[]) { QApplication a(argc, argv); //Dialog w; //w.show(); MainWindow Window; const int N = 13; int n; int numberCurve; double x[N+1]={1,2,3,6,8,9,11,12,13,14,18,21,22}; //double x[N+1]={-10,-7,-6,-5,-4, -2,-1,0, 2,3,6,9,10}; double y[N+1]; double x2[N+1]; double y2[N+1]; double AxisXmax = 0; double AxisXmin = 0; double AxisYmax = 0; double AxisYmin = 0; double errorX; for(int k = 0; k < N; k++ ) { y[k]=exp(x[k]); //первый график x2[k]= x[k]+ 2; y2[k]=x2[k]*x[k] + 3 * x2[k]; //exp(x2[k]); //второй график //определяем минимум макимум х и у if(x[k] > AxisXmax) AxisXmax = x[k]; if(x[k] < AxisXmin) AxisXmin = x[k]; if(y[k] < AxisYmin) AxisYmin = y[k]; if(y[k] > AxisYmax) AxisYmax = y[k]; if(x[k] < 0 ) errorX = x[k]; } numberCurve = 1; n = Window.plot_first (AxisXmax,AxisXmin,AxisYmax,AxisYmin,errorX,x,y,N,numberCurve); //вызов моей библиотечной функции // if( n == 0 ) // { // numberCurve++; // for(int k=0; k < N; k++) // { // x[k]=x2[k]; // y[k]=y2[k]; // } // n = plot_next(x,y,N,numberCurve); // } Window.show (); return a.exec(); } то всё работает, есть мысль: что приложение к которому идёт подключение библиотеки, основой является класс QMainWindow Код: class MainWindow : public QMainWindow и моё библиотечное приложение идёт как Код: class MainWindow : public QMainWindow { Q_OBJECT и из-за этого множественное объявление, может быть такое или нет? |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 5.5.2025, 4:59 |