crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )


  Ответ в variable or field '...' declared void
Введите ваше имя
Подтвердите код

Введите в поле код из 6 символов, отображенных в виде изображения. Если вы не можете прочитать код с изображения, нажмите на изображение для генерации нового кода.
Теги
Выровнять по центру
Ссылка на тему
Ссылка на сообщение
Скрытый текст
Сокращение
Код с подсветкой
Offtopic
 
Удалить форматирование
Спец. элементы
Шрифт
Размер
 
Цвет шрифта
 
Отменить ввод
Вернуть ввод
Полужирный
Курсив
Подчеркнутый
 
 
Смайлики
Вставить изображение
Вставить адрес электронной почты
Цитата
Код
Раскрывающийся текст
 
Увеличить отступ
По левому краю
По центру
По правому краю
Вставить список
Вставить список

Опции сообщения
 Включить смайлы?
Иконки сообщения
(Опционально)
                                
                                
  [ Без иконки ]
 


Последние 10 сообщений [ в обратном порядке ]
void* Дата 26.6.2008, 10:14
  действительно, Tonal, спасибо большое тебе, помогло
Litkevich Yuriy Дата 26.6.2008, 10:12
  Tonal, т.е. ему надо поменять:
class CPDialog;
на:
#include "CPDialog"

так?
Tonal Дата 26.6.2008, 10:10
  CPDialog только задекларирован, но не определён. А ты в декларации createNewProject используешь его внутренний тип CPDialog::ProjectType.
void* Дата 26.6.2008, 10:03
  наследуюсь от QMainWindow, Q_OBJECT естественно есть
вот определения(весь класс довольно громоздкий):
#ifndef MAINWINDOW_H_
#define MAINWINDOW_H_
#include <QMainWindow>
class TabWidget;
class QTabWidget;
class ProjectView;
class CPDialog;
//...
class MainWindow : public QMainWindow {
    Q_OBJECT
//...
};
#endif
AD Дата 26.6.2008, 9:57
  По приведенному коду сложно сказать. Вроде все правильно. А у тебя есть наследование от класса QObject, и есть макрос Q_OBJECT?
ViGOur Дата 26.6.2008, 9:55
  Приведи этот класс полностью...
void* Дата 26.6.2008, 9:51
  вобщем есть у меня класс, в нем слот:
public slots:
                void createNewProject(CPDialog::ProjectType type, const QString &dir, const QString &name);

вот его реализация:
void MainWindow::createNewProject(CPDialog::ProjectType type, const QString &dir, const QString &name) {
     switch(type) {
                  case CPDialog::Console_Application: 
                       createConsoleApp(dir, name);
                       break;
                  case CPDialog::Linux_Application:
                       createLinuxApp(dir, name);
                       break;
                  case CPDialog::Windows_Application:
                       createWindowsApp(dir, name);
                       break;
                  case CPDialog::MacOS_Application:
                       createMacOSApp(dir, name);
                       break;
                  }
}

вот тут он соединяется с сигналом:
void MainWindow::newProject() { 
     CPDialog *dialog = new CPDialog;
     connect(dialog, SIGNAL(needCreateProject(CPDialog::ProjectType, const QString&, const QString&)),
     this, SLOT(createNewProject(CPDialog::ProjectType, const QString&, const QString&)));
     dialog->exec();
     //...
}


при компиляции выскакивают ошибки:
error: variable or field 'createNewProject' declared void //это он ругается на определение в хидере
error: expected ';' before '(' token //это он ругается на определение в хидере
error: no 'void MainWindow::createNewProject(CPDialog::ProjectType, const QString&, const QString&)' member function declared in class 'MainWindow' //а это уже ругань на реализацию метода

подскажите пожалуйста в чем ошибка? ниче не понимаю...
Просмотр темы полностью (откроется в новом окне)
RSS Рейтинг@Mail.ru Текстовая версия Сейчас: 5.7.2025, 3:11