Russian Qt Forum
Ноябрь 22, 2024, 17:42 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: qt-win-opensource-desktop-4.0.0. Сборка проекта.  (Прочитано 9641 раз)
al_kokaine
Гость
« : Октябрь 05, 2005, 17:00 »

Люди! помогите!

Добивают следующие ошибки:

main.cpp: At global scope:
main.cpp:5: error: new types may not be defined in a return type
main.cpp: In function `MainWindow qMain(int, char**)':
main.cpp:9: error: conversion from `int' to non-scalar type `MainWindow' requested


содержимое main.cpp:

Код:
#include <qapplication.h>
#include "mainwindow.h"

main(int argc, char **argv)
{
QApplication app(argc,argv);
MainWindow mainWin;
mainWin.show();
return app.exec();
}


MainWindow - потомок класса QMainWindow.
Записан
KADABRA
Гость
« Ответ #1 : Октябрь 05, 2005, 18:24 »

Ну так покажи этот MainWindow.
А то тут конечно легко гадать, но врядли это тебе поможет.
Записан
ElderOrb
Гость
« Ответ #2 : Октябрь 05, 2005, 22:23 »

Я не уверен, но вроде с похожей ошибкой я когда-то сталкивался. Полечилось созданием виджэта через new.

p.s. Проявлялась она у меня тоже в  main.cpp
Записан
al_kokaine
Гость
« Ответ #3 : Октябрь 06, 2005, 07:38 »

Код:

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <qmainwindow.h>

#ifndef INTEGR_H
#include "integration.h"
#endif

class QAction;
class QLineEdit;
class QPushButton;
class QStringList;

class MainWindow : public QMainWindow
{
Q_OBJECT
public:
MainWindow();

private slots:
void applyInputHClicked();
void applyInputW1Clicked();
void calculateKoefClicked();
void drawFurieClicked();

private:
double ak;
double bk;
double w1;
double h;
double T;

QLineEdit *w1input;
QLineEdit *hinput;
QStringList *abk;
QPushButton *applyInputW1;
QPushButton *applyInputH;
QPushButton *calculateKoef;
QPushButton *drawFurie;
QPushButton *exit;

pfdri ri;
pfdcs ris;
pfdcs ric;
}

#endif

 и реализация

MainWindow::MainWindow()    : QMainWindow(parent, flags)
{
w1input = new QLineEdit;
hinput = new QLineEdit;
abk = new QStringList;
plotter = new Q3Canvas;
applyInputH = new QPushButton("Apply h");
applyInputW1 = new QPushButton("Apply w1");
calculateKoef = new QPushButton("Calculate koeff");
drawFurie = new QPushButton("Plot!");
exit = new QPushButton("Exit");
ak = new double [7];
bk = new double [7];
w1 = new double;
h = new double;
T = new double;
ri = &research_impulse;
ric = &ri_cos;
ris = &ri_sin;

connect(applyInputW1, SIGNAL(clicked()), &MainWindow, SLOT(applyInputW1Clicked()));
connect(applyInputH, SIGNAL(clicked()), &MainWindow, SLOT(applyInputHClicked()));
connect(calculateKoef, SIGNAL(clicked()),&MainWindow, SLOT(calculateKoefClicked()));
// QObject::connect(exit,SIGNAL(clicked()),&MainWindow,SLOT(exitClicked()));
}

void MainWindow::applyInputW1Clicked()
{
w1 = w1input->text.toDouble;
T = 2*PI/w1;
}

void MainWindow::applyInputHClicked()
{
h = hinput->text.toDouble;
}

void MainWindow::calculateKoefClicked()
{
for (int i = 0; i < 7;i++)
{
// ak[i] = get_koef(0,ris,ri,i+1,500,T);
// bk[i] = get_koef(0,ric,ri,i+1,500,T);
//                        это в принципе не интересно
}
}
Записан
KADABRA
Гость
« Ответ #4 : Октябрь 06, 2005, 08:36 »

Вместо
MainWindow::MainWindow() : QMainWindow(parent, flags)
напиши просто
MainWindow::MainWindow()
Записан
al_kokaine
Гость
« Ответ #5 : Октябрь 06, 2005, 13:18 »

та же фигня. :-(
Записан
KADABRA
Гость
« Ответ #6 : Октябрь 06, 2005, 18:10 »

Ёпть! Как я сразу не заметил!
main должен что-то возвращать, а тебя это не описано. Замени
main(int argc, char **argv)
на
int main(int argc, char **argv)
Записан
al_kokaine
Гость
« Ответ #7 : Октябрь 06, 2005, 19:41 »

в таком случае появляется третья ошибка:

main.cpp:5: error: extraneous `int' ignored
Записан
KADABRA
Гость
« Ответ #8 : Октябрь 06, 2005, 20:28 »

Во первых скажи как ты компилишь? А во вторых у тебя ещё куча ошибок в классе MainWindow.
Записан
al_kokaine
Гость
« Ответ #9 : Октябрь 07, 2005, 08:13 »

компилю следующим образом

qmake -project
qmake lab1qt.pro
make

укажи ошибки.
Записан
KADABRA
Гость
« Ответ #10 : Октябрь 07, 2005, 09:22 »

Цитата: "al_kokaine"

#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <qmainwindow.h>

#ifndef INTEGR_H
#include "integration.h"
#endif

class QAction;
class QLineEdit;
class QPushButton;
class QStringList;

class MainWindow : public QMainWindow
{
   Q_OBJECT
public:
   MainWindow();
   
private slots:
   void applyInputHClicked();
   void applyInputW1Clicked();
   void calculateKoefClicked();
   void drawFurieClicked();
   
private:
   double ak;
   double bk;
   double w1;
   double h;
   double T;
   
   QLineEdit *w1input;
   QLineEdit *hinput;
   QStringList *abk;
   QPushButton *applyInputW1;
   QPushButton *applyInputH;
   QPushButton *calculateKoef;
   QPushButton *drawFurie;
   QPushButton *exit;
   
   pfdri ri;
   pfdcs ris;
   pfdcs ric;
}

#endif

 и реализация

MainWindow::MainWindow()    : QMainWindow(parent, flags)
{
   w1input = new QLineEdit;
   hinput = new QLineEdit;
   abk = new QStringList;
   plotter = new Q3Canvas;
   applyInputH = new QPushButton("Apply h");
   applyInputW1 = new QPushButton("Apply w1");   
   calculateKoef = new QPushButton("Calculate koeff");
   drawFurie = new QPushButton("Plot!");
   exit = new QPushButton("Exit");
   ak = new double [7];   // ak, bk, w1, h и T - это не указатели!!!
   bk = new double [7];
   w1 = new double;
   h = new double;
   T = new double;
   ri = &research_impulse;
   ric = &ri_cos;
   ris = &ri_sin;
   
   connect(applyInputW1, SIGNAL(clicked()), &MainWindow, SLOT(applyInputW1Clicked()));
   connect(applyInputH, SIGNAL(clicked()), &MainWindow, SLOT(applyInputHClicked()));
   connect(calculateKoef, SIGNAL(clicked()),&MainWindow, SLOT(calculateKoefClicked()));
//   QObject::connect(exit,SIGNAL(clicked()),&MainWindow,SLOT(exitClicked()));   
//   Что такое &MainWindow?Непонимающий Где ты тут его видел???
//  Только this можно использовать!!!!

}

void MainWindow::applyInputW1Clicked()
{
   w1 = w1input->text.toDouble;
   T = 2*PI/w1;
}

void MainWindow::applyInputHClicked()
{
   h = hinput->text.toDouble;
}

void MainWindow::calculateKoefClicked()
{
      for (int i = 0; i < 7;i++)
      {
//         ak = get_koef(0,ris,ri,i+1,500,T);
//         bk = get_koef(0,ric,ri,i+1,500,T);
//                        это в принципе не интересно
      }
}

Я надеюсь, что ты в реализации класса подключил заголовки
QAction QLineEdit QPushButton QStringList ?
Записан
al_kokaine
Гость
« Ответ #11 : Октябрь 07, 2005, 14:19 »

аналогично.
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.046 секунд. Запросов: 21.