Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577

Ошибка при создании окна

04.02.2020, 20:57. Показов 1327. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер. Такая проблема. Нужно создать два окна (в первом таблица (по щелчку на строку таблицы открывается второе окно, в котором выводятся номера телефонов для дальнейшего взаимодействия)). Проблема в том, что при создании второго окна появляется непонятная ошибка (место в коде выделено комментом + прилагаю скрин). Главное окно PlaceCallDialog, второе -- ChooseNumber. При этом хочу заметить, что когда компилирую проект непосредственно после создания всех файлов ChooseNumber с нуля, ошибок нет. После внесения каких-либо изменений в проект, ошибка снова появляется (остается даже если удалить все изменения, вернув проект в изначальный вариант). Подскажите, пожалуйста, в чем может быть ошибка?

PlaceCallDialog.h
C++ (Qt)
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
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
#ifndef PLACECALLDIALOG_H
#define PLACECALLDIALOG_H
 
#include "ChooseNumber.h"
#include "ViewContactDialog.h"
 
#include <QDialog>
#include <QSqlQueryModel>
#include <QHeaderView>
#include <QBoxLayout>
#include <QString>
#include <QLabel>
#include <QTableView>
#include <QScrollBar>
#include <QAbstractProxyModel>
 
class Contact;
class QTreeWidgetItem;
 
namespace Ui {
class PlaceCallDialog;
}
 
class PlaceCallDialog : public QDialog
{
    Q_OBJECT
 
public:
    explicit PlaceCallDialog(QWidget *parent = 0);
    ~PlaceCallDialog();
 
    void show();
 
protected:
     void clearCallTree();
 
protected slots:
    void onCallButton();
    void onCancelButton();
    void onUpdate();
    void onComboBoxSelected();
    void clearEditText();
    void onChangeContact(QString name);
    void onContactIndexChange(const QString &name);
    void onContactsLoaded(QList<Contact *> &contacts);
    void onSettingsChange();
    void onItemDoubleClicked(QTreeWidgetItem * item, int);
    void onItemClicked(QTreeWidgetItem * item, int);
    void showNumber(const QModelIndex &);
 
private slots:
    void on_lineEdit_returnPressed();
 
private:
    Ui::PlaceCallDialog *ui;
    QList<Contact*> m_contacts;  /**< Contact list from Outlook */
    QSqlQueryModel *query1;
    QSqlQueryModel *query2;
    QString update;
    ViewContactDialog *viewContactDialog;
    ChooseNumber *chooseNumber;/*ошибка появляется здесь*/
};
 
#endif // PLACECALLDIALOG_H
Миниатюры
Ошибка при создании окна  
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
04.02.2020, 20:57
Ответы с готовыми решениями:

Smart pointers при создании нового окна
Привет. Используются ли стандартные си плюсовые smart pointers при создании окон? unique_ptr&lt;Dialog&gt; dialog;

Ошибка при создании класса
Есть графический класс ellips производный от TFigure . его при создании экземпляра надо нарисовать на форме. Класс реализован в...

Ошибка при создании массива c QLabel
Здравстуйте,хочу огласить 16-лейбелов в класе главного окна,и определить их в конструкторе окна.Когда компилирую и запускаю -ошибка. .H ...

5
67 / 43 / 17
Регистрация: 10.02.2016
Сообщений: 137
04.02.2020, 21:08
Попробуйте очистить папку сборки.
0
фрилансер
 Аватар для Алексей1153
6455 / 5656 / 1129
Регистрация: 11.10.2019
Сообщений: 15,063
04.02.2020, 21:21
компилятор, видимо, считает класс ChooseNumber неопределённым. Может, есть перекрёстные зависимости файлов, нужно их разрулить. Прикрепи проект, так сложно понять

Добавлено через 1 минуту
по большому счёт эти строки

C++
1
2
#include "ChooseNumber.h"
#include "ViewContactDialog.h"
в данном заголовке не нужны. Вместо них напиши

C++
1
2
class ViewContactDialog;
class ChooseNumber;
Добавлено через 2 минуты
и не забывай инициализацию, чтобы потом не было неприятных моментов )

C++
1
2
3
4
5
6
7
    Ui::PlaceCallDialog *ui=nullptr;
 
    QSqlQueryModel *query1=nullptr;
    QSqlQueryModel *query2=nullptr;
 
    ViewContactDialog *viewContactDialog=nullptr;
    ChooseNumber *chooseNumber=nullptr;
0
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577
04.02.2020, 22:24  [ТС]
rust3128, не помогает

Добавлено через 3 минуты
Алексей1153, спасибо, попробую как вы говорите.
Вот та же самая мысль была
Цитата Сообщение от Алексей1153 Посмотреть сообщение
компилятор, видимо, считает класс ChooseNumber неопределённым
. Однако странно, что с другими классами такой штуки нет
0
фрилансер
 Аватар для Алексей1153
6455 / 5656 / 1129
Регистрация: 11.10.2019
Сообщений: 15,063
05.02.2020, 20:56
Teylor, чтобы понять, где перекрёстные ссылки закусились, нужно раскрутить вложенность заголовков. Но можно этого и не делать, а просто использовать в заголовке только ссылки и указатели "проблемного" класса
1
14 / 14 / 0
Регистрация: 01.12.2017
Сообщений: 577
05.02.2020, 21:28  [ТС]
Алексей1153, с вашей помощью все получилось
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
05.02.2020, 21:28
Помогаю со студенческими работами здесь

EXaro: ошибка при создании запроса
В eXaro нужно создать отчет по БД. Ввожу запрос: SELECT FIO, n_kaf, _Year, n_SfD, n_pokaz, n_izm, norma, n_rab, rab_V, id_rab FROM...

Ошибка при создании объекта класса
Есть класс, создаю объект, выходит ошибка &quot;cannot allocate an object of abstract type 'Cat'&quot; Что делать? cat.h: #ifndef CAT_H ...

Ошибка при создании сигнала для нажатие на виджет
Дорой ночи. Сидел писал код, все было прекрасно, а потом ни с того ни с сего куча ошибок, и я не понимаю ни капли в чем проблема... Кода...

Выскакивает ошибка при создании нового класса формы
Товарищи программисты! Начал писать на C++ Qt при создании класса формы выскакивает ошибка (см. скрин) Что делать? Создавал все по уроку...

Ошибка при создании базового класса для обнаружения коллизий
Пытаюсь создать базовый класс от которого буду наследовать другие классы которые мне надо будет проверять на коллизию собственно сам...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru