Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/29: Рейтинг темы: голосов - 29, средняя оценка - 4.93
Linux-оид
120 / 69 / 9
Регистрация: 15.02.2011
Сообщений: 374
1

incomplete type used in nested name specifier

15.02.2012, 11:43. Показов 6045. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Подскажите пожалуйста как из class Vkladka_4 вызвать сигнал из class General?

Класс расположен выше в исходнике...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class General;
 
class Vkladka_4:public QWidget{
 
    Q_OBJECT
 
    QPushButton *install;
    QPushButton *cancel;
    QLabel *lbl;
    QHBoxLayout *buttons;
    QVBoxLayout *message;
 
public:
 
    Vkladka_4(){
 
        install=new QPushButton("Install");
        cancel=new QPushButton("No! Aborted!");
        lbl=new QLabel("All ready! Install OS?");
 
        buttons=new QHBoxLayout();
        buttons->addWidget(cancel);
        buttons->addWidget(install);
 
        message=new QVBoxLayout(this);
        message->addWidget(lbl);
        message->addLayout(buttons);
 
        QObject::connect(cancel,SIGNAL(clicked()),SLOT(Close_All()));
 
    }
 
public slots:
 
    void Close_All(){
        emit General::Kill_Father_Now();
        // Удалить вкладку...
    }
 
};
Класс расположен ниже в исходнике...

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
class General:public QWidget{                    // Основное окно...
 
    Q_OBJECT
 
    QTabWidget *t;
 
public:
 
    General(){
 
        this->resize(210,200);
 
        t=new QTabWidget(this);
        t->resize(210,200);
 
        t->addTab(new Vkladka_1(),"Step 1");
        t->addTab(new Vkladka_2(),"Step 2");
        t->addTab(new Vkladka_3(),"Step 3");
        t->addTab(new Vkladka_4(),"Final");
 
        t->setTabEnabled(1,false);
        t->setTabEnabled(2,false);
 
    }
 
public slots:
 
    void Kill_Father_Now(){
        this->close();
    }
 
};
ошибка: incomplete type 'General' used in nested name specifier
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
15.02.2012, 11:43
Ответы с готовыми решениями:

Incomplete type used in nested type specifier - Итерация по списку аргументов
Здравствуйте! Пытаюсь написать утилитарную структуру для применения шаблонной функции на списке...

Error: array type has incomplete element type
в функции выдает ошибку \arifm.c|4|error: array type has incomplete element type| подправьте...

Ошибка "[Error] expected nested-name-specifier before 'BarrelsPair'"
#include <fstream> #include <vector> #include <algorithm> #include <iomanip> int main() { ...

Expected type-specifier
Что нужно исправить в этих классах чтоб все работало? http://************/b6z111 (ошибки) П.5.18...

4
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
15.02.2012, 11:58 2
Цитата Сообщение от OLLEGATOR Посмотреть сообщение
emit General::Kill_Father_Now();
уж простите - но Вы чушь пишите!
Создайте в классе General функцию\слот с модификатором доступа public а в ней делайте emit только так! хотя я не претендую на абсолютную правильность, может каким-то танцем с бубном можно и ещё
0
Linux-оид
120 / 69 / 9
Регистрация: 15.02.2011
Сообщений: 374
15.02.2012, 12:06  [ТС] 3
спасибо уже совет))

Добавлено через 5 минут
а так можно!?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
class General;
 
class Vkladka_4:public QWidget{
 
    Q_OBJECT
 
    QPushButton *install;
    QPushButton *cancel;
    QLabel *lbl;
    QHBoxLayout *buttons;
    QVBoxLayout *message;
 
public:
 
    Vkladka_4(){
 
        install=new QPushButton("Install");
        cancel=new QPushButton("No! Aborted!");
        lbl=new QLabel("All ready! Install OS?");
 
        buttons=new QHBoxLayout();
        buttons->addWidget(cancel);
        buttons->addWidget(install);
 
        message=new QVBoxLayout(this);
        message->addWidget(lbl);
        message->addLayout(buttons);
 
        QObject::connect(cancel,SIGNAL(clicked()),SLOT(Close_All()));
 
    }
 
public slots:
 
    void Close_All(){
         General::Kill_General_Windows();
        // Удалить вкладку...
    }
 
};
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
class General:public QWidget{                    // Основное окно...
 
    Q_OBJECT
 
    QTabWidget *t;
 
public:
 
    General(){
 
        this->resize(210,200);
 
        t=new QTabWidget(this);
        t->resize(210,200);
 
        t->addTab(new Vkladka_1(),"Step 1");
        t->addTab(new Vkladka_2(),"Step 2");
        t->addTab(new Vkladka_3(),"Step 3");
        t->addTab(new Vkladka_4(),"Final");
 
        t->setTabEnabled(1,false);
        t->setTabEnabled(2,false);
 
    }
 
    void Kill_General_Windows(){ emit Kill_Father_Now(); }
 
public slots:
 
    void Kill_Father_Now(){
        this->close();
    }
 
};
0
Эксперт С++
1936 / 1048 / 109
Регистрация: 29.03.2010
Сообщений: 3,167
15.02.2012, 12:08 4
естественно НЕТ! т.к. Kill_General_Windows не является статической функцией!
Читайте основы С++, будет проще.
1
Linux-оид
120 / 69 / 9
Регистрация: 15.02.2011
Сообщений: 374
15.02.2012, 12:10  [ТС] 5
спасибо
0
15.02.2012, 12:10
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.02.2012, 12:10
Помогаю со студенческими работами здесь

Missing type specifier
Добрый день. Подскажите, пожалуйста, как исправить данную ошибку. Пишет "missing type specifier -...

Шаблон класса. Ошибка `missing type specifier`
Вот код: template <int value, typename type> class Class { public: type Array; type...

Incomplete type
Доброго времени суток, есть такая ситуация: class B; class A { B b; }; class B

Ошибка C4430: missing type specifier - int assumed
Вот так простенький код #pragma once #include "A.h" class B { public: B(void); ~B(void);...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru