Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
9 / 9 / 8
Регистрация: 02.01.2017
Сообщений: 262

Передать данные из диалога

09.03.2017, 02:39. Показов 2900. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток, хотел в диалоге сделать проперть, указатель на родителя, и заносить(через указатель) в родительские проперти данные из диалога, но выдает ошибку:
ошибка: 'TabWinWidg' in 'class QWidget' does not name a type
QWidget::TabWinWidg *parentwidg;
родительский виджет накатан от руки, а диалог в дизайнере, файл родителя включен. мануалы облазил,форумы прошерстил, ломаю голову.
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
//child
#include "../windizayner.h"
namespace Ui {
class StandartDialog;
} 
 
class StandartDialog : public QDialog
{
    Q_OBJECT
 
public:
    explicit StandartDialog(QWidget *parent = 0);
    QWidget::TabWinWidg *parentwidg; // тут ошибка
    ~StandartDialog();
public slots:
void onBOkClicked();
private:
    Ui::StandartDialog *ui;
};
//parent
class TabWinWidg:public QWidget
{
    Q_OBJECT
public:
    explicit TabWinWidg(QWidget*parent=0);
    ~TabWinWidg();
    QGraphicsView GrView;
    TabWinWidg* tmpwidg; //тут не проблема сделать указатель свойством
    QPainter painter;
 
public slots:
    void onbRamaClicked();
 
};
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.03.2017, 02:39
Ответы с готовыми решениями:

Передать текст из одного диалога в другой
Здравствуйте уважаемые форумчане! поставлена задача передать текст из LineEdit1(диалоговое окно 1) в LineEdit2(диалоговое окно 2); ...

Передать данные между двумя кнопками
Есть две кнопки на одной форме: private slots: void on_pushButton_clicked(); void on_pushButton_2_clicked();...

Передать данные после получения newConnection
Всем привет. Возможно ли передать данные с QTcpServer при получении сигнала newConnection и как это сделать? Дело в том, что у...

14
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
09.03.2017, 05:05
А откуда QWidget знает что либо о твоем классе?
Надо было так написать:
C++ (Qt)
1
TabWinWidg *parentwidg;
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
09.03.2017, 05:05
А откуда QWidget знает что либо о твоем классе?
Надо было так написать:
C++ (Qt)
1
TabWinWidg *parentwidg;
1
9 / 9 / 8
Регистрация: 02.01.2017
Сообщений: 262
09.03.2017, 05:35  [ТС]
мм простите это уже от безнадеги тыкал пальцем в небо, в изначальном варианте так и было
C++ (Qt)
1
TabWinWidg *parentwidg;
Добавлено через 22 секунды
не работает
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
09.03.2017, 05:37
Какую конкретно ошибку выдает?
Поместите описание класса TabWinWidg раньше чем StandartDialog
0
9 / 9 / 8
Регистрация: 02.01.2017
Сообщений: 262
09.03.2017, 05:38  [ТС]
creator выделяет строки которые найдены и в файле с потомком он выделяет TabWinWidg как опознанный, но ошибка все равно вылетает
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
09.03.2017, 05:40
Где текст ошибки?
0
9 / 9 / 8
Регистрация: 02.01.2017
Сообщений: 262
09.03.2017, 05:40  [ТС]
Цитата Сообщение от solar_wind Посмотреть сообщение
Какую конкретно ошибку выдает?
ошибка: 'TabWinWidg' in 'class QWidget' does not name a type
QWidget::TabWinWidg *parentwidg;
Цитата Сообщение от solar_wind Посмотреть сообщение
Поместите описание класса TabWinWidg раньше чем StandartDialog
они в разных хедерах
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
09.03.2017, 05:41
Эта ошибка от предыдущего описания.
Перепишите так как я говорил, и уже тогда текст ошибки и показывайте
0
9 / 9 / 8
Регистрация: 02.01.2017
Сообщений: 262
09.03.2017, 05:42  [ТС]
20: ошибка: 'TabWinWidg' does not name a type
TabWinWidg *parentwidg;
^
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
09.03.2017, 05:43
Лучший ответ Сообщение было отмечено imjonhson как решение

Решение

Надеюсь include h файла с TabWinWidg присутствует?
Напиши вначале после инклудов
C++ (Qt)
1
class TabWinWidg;
1
9 / 9 / 8
Регистрация: 02.01.2017
Сообщений: 262
09.03.2017, 05:56  [ТС]
оба файла включают друг друга,может из-за этого

Добавлено через 6 минут
Аллилуя починили!!!, а шо это мы сделали?

Добавлено через 5 минут
раньше честно говоря не сталкивался с таким объявлением, почитать бы немешало на эту тему, спасибо
0
 Аватар для solar_wind
770 / 760 / 59
Регистрация: 06.07.2009
Сообщений: 3,021
09.03.2017, 07:08
Это у qt есть такой прикол. Если появляется циклическая связь между файлами, то линковщик почему то не видит некоторые классы. В этом случае достаточно в файле прописать
C++ (Qt)
1
class TabWinWidg;
и линковщик поймет, что такой класс где то есть.
1
 Аватар для icpu
487 / 365 / 93
Регистрация: 10.03.2011
Сообщений: 1,513
Записей в блоге: 5
09.03.2017, 08:03
imjonhson, тру Qt способ: в классе диалога создай сигнал со списком параметров, а в родителе делай слот. Если Qt5 и можно в c++11, слот можно делать лямбдой

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Dialog {
  Dialog() {
    connect(ui->pushButtonEnd,&QPushButton::clicked,this,[this](){emit ended(m_name, ui->scroll->value());});
  }
signals:
  void ended(QString name, int param);
};
 
class Parent {
  Parent() {
    Dialog dialog;
    connect(&dialog,&Dialog::ended,this,[this](QString name, int param){});
  }
};
Добавлено через 4 минуты
solar_wind, это у Си такая прикалюха со множественным включением и гонкой определений. Плюсы тут пострадавшие.
0
9 / 9 / 8
Регистрация: 02.01.2017
Сообщений: 262
09.03.2017, 19:54  [ТС]
Цитата Сообщение от solar_wind Посмотреть сообщение
линковщик почему то не видит некоторые классы
Наверно это все-таки прикол линковщика, в билдере я такого не наблюдал.
Цитата Сообщение от icpu Посмотреть сообщение
тру Qt способ
Спасибо, но вариант с указателем менее ресурсозатртный, к тому-же и писанины меньше.
Когда я впервые столкнулся с системой сигналов-слотов мне это напомнило оператор goto, стараюсь использовать только там где без этого не обойтись, например для симуляции события "после показа формы", после form->show(); вызываю сигнал, а слот находится в форме. Стандартное событие в qt происходит до показа формы
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.03.2017, 19:54
Помогаю со студенческими работами здесь

Передать данные из одной формы в другую
Доброй ночи(у меня) и доброго времени суток всем. Столкнулся с проблемой, что не могу передать правильно через сигналы и слоты...

Передать данные из одной формы на другую. Ошибка
Добрый день! Имеется две формы: MainWindow, form_add. В form_add три текстовых поля, хочу, чтобы значения из них при нажатии на кнопку...

Передать данные из родительского виджета в дочерний и обратно
Доброго времени суток! Столкнулся с проблемой и не могу решить уже около двух дней. Сейчас попробую описать. Если что непонятно -...

Передать данные из диалога
Доброго всем времени суток. Ребят вопрос простейший, хочется узнать как делать правильно. Есть класс расширяющий класс Dialog. С...

Передать данные из диалога ListView родительскому Activity
Нашел код в котором создается диалоговое окно, в нем вводятся данные и эти данные передаются родителю. Вот код: res/layout/main.xml ...


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru