Форум программистов, компьютерный форум, киберфорум
C++ Qt
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.95/20: Рейтинг темы: голосов - 20, средняя оценка - 4.95
 Аватар для Дмитрий Ржевский
2 / 2 / 0
Регистрация: 04.10.2008
Сообщений: 24

Qt QT_BEGIN_HEADER

04.10.2008, 10:50. Показов 4174. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я много писал на java и вот решил попробовать написать на C++.
Поставил эклипс, g++, qt (работаю под kde)
Консольная версия программы Hello world работает.
а вот при компиляции простенькой QT программы:

C++ (Qt)
1
2
3
4
5
6
7
8
9
10
#include "qt4/Qt/qapplication.h"
#include "qt4/Qt/qlabel.h"
int main(int argc, char *argv[0])
{
    QApplication app(argc,argv);
    QLabel *label=new QLabel("hello qt!");
    label->show();
    app.exec();
    return 0;
}
компилятор выдаёт сообщение:
Кликните здесь для просмотра всего текста
make all
Building file: ../src/dff.cpp
Invoking: GCC C++ Compiler
g++ -O0 -g3 -Wall -c -fmessage-length=0 -MMD -MP -MF"src/dff.d" -MT"src/dff.d" -o"src/dff.o" "../src/dff.cpp"
/usr/include/qt4/Qt/qapplication.h:59: error: ‘QT_BEGIN_HEADER’ does not name a type
/usr/include/qt4/Qt/qapplication.h:79: error: invalid function declaration
/usr/include/qt4/Qt/qapplication.h:358: error: ‘QT_END_HEADER’ does not name a type
/usr/include/qt4/Qt/qlabel.h:50: error: invalid function declaration
../src/dff.cpp:11: error: expected constructor, destructor, or type conversion before ‘int’
make: *** [src/dff.o] Error 1


как с эти боротья?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.10.2008, 10:50
Ответы с готовыми решениями:

STEAM VR , Liv, синхронизаци­­­­­­­я видео в реальности и Vr( tilt brush )
Здравствуйте, у меня задача настроить качественную запись видео художника рисующего в vr ( в программах tilt brush , adobe medium в очках...

Видеорегиста­­­тор NVR8016
Здравствуйте Помогите сбросить пароль на видеорегистаторе NVR8016

Неисправност­­­ь планок SDRAM?
Из того, что нашлось в закромах, получилась ретросборка на мат. плате с 370-м сокетом, докупил к ней две планки SDRAM PC-133 по 256 Мб...

5
 Аватар для Дмитрий Ржевский
2 / 2 / 0
Регистрация: 04.10.2008
Сообщений: 24
09.10.2008, 00:30  [ТС]
Не уж то никото не знает?
0
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
09.10.2008, 09:08
По моему надо сначала создать какой нибудь виджет, а уже на него создавать лейбл, а то он не знает, где отображать QLabel.
0
 Аватар для Дмитрий Ржевский
2 / 2 / 0
Регистрация: 04.10.2008
Сообщений: 24
10.10.2008, 00:53  [ТС]
вообще я брал этот пример из книжки
только вместо
C++ (Qt)
1
2
#include "qt4/Qt/qapplication.h"
#include "qt4/Qt/qlabel.h"
там
C++ (Qt)
1
2
#include <QApplication>
#include <QLabel>
кстати при написании программы на питоне добавляется такая строка (из tutorial)
Python
1
app.setMainWidget(label)
0
 Аватар для Alirp
57 / 53 / 4
Регистрация: 04.05.2008
Сообщений: 272
10.10.2008, 09:12
Далеко не все примеры из книжки работают.
Чтобы лучше разобраться, лучше создай свою форму при помощи QTDesigner выбрав при создании C++ Project (назвав его к примеру test.pro), в созданном проекте создай форму (например form1), создай на форме QLabel, сохрани ее и включи в проект, затем создай при помощи QTDesigner C++ Main-File выбрав при воздании созданную форму. Созданные файлы перенеси в одну папку, (по умолчанию они создаются в /root) и набери команду
qmake test.pro -o Makefile.
Затем набери команду make.
После компиляции у тебя создастся запускаемый файл с твой формой.
А далее посмотрев файлы form1.cpp и form1.h ты можеш узнать как самому создавать формы и обекты на ней.

Вот какой создался main.cpp
Code
1
2
3
4
5
6
7
8
9
10
#include <qapplikation.h>
#include "form1.h"
 
int main (int argc, char **argv) {
    QApplication a (argc, argv);
    Form1 *w = new Form1;
    w-> show();
    a.connect (&a, SIGNAL (lastWindowClosed()), &a, SLOT (quit()));
    return a.exec();
}
0
0 / 0 / 0
Регистрация: 16.11.2008
Сообщений: 3
26.11.2008, 22:56
Ну вы даете!!! возвращать надо на исполнение не ноль, а app.exec(), то есть нужно запустить прорамму, тем самым запустив цикл обработки событий. Так что конец д/б таким:
...
label->show();
return app.exec();
}

И вообще не обязательно выделять память для QLabel достаточно написать:
QLabel label("hello qt!"); затем label.show(); и тд.

ЗЫ Дезигнер - это зло, пишите руками. Удачи...))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.11.2008, 22:56
Помогаю со студенческими работами здесь

Аналог register_nex­t_step_handl­er в Google Apps Script
Добрый день. На Python в библиотеке pytelegrambotapi через register_next_step_handler() есть простой и понятный пример создания опроса у...

Может ли EF Core актуализиров­ать информацию, посмотрев на ContextModel­Snapshot?
Доброго времени суток, дотнетчики! Возникла следующая проблема - зафакапил truncate'ом некоторые данные в своей тестовой бд (спасибо,...

Как сделать аутентификац­ия по SMS без пароля с использовани­ем Xamarin
Здравствуйте подскажите пожалуйста, как можно сделать чтобы когда пользователь вводил номер телефона, ему отправлялось смс с кодом, который...

Выяснить сюръективнос­­­­­ть/инъективност­­­­­ь отображения по матрице
Линейное отображение из 3-мерного линейного пространства в 4-мерное задано матрицей А. Выяснить, является ли данное отображение...

stm32f030r8t­­­6
Здравстуйте. Вопрос: какие библиотеки надо использовать, чтобы LCD1602A принимал текст от STM32F030R8T6? Пробовал адаптировать разные...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Как я обхитрил таблицу Word
Alexander-7 21.03.2026
Когда мигает курсор у внешнего края таблицы, и нам надо перейти на новую строку, а при нажатии Enter создается новый ряд таблицы с ячейками, то мы вместо нервных нажатий Энтеров мы пишем любые буквы. . .
Krabik - рыболовный бот для WoW 3.3.5a
AmbA 21.03.2026
без регистрации и смс. Это не торговля, приложение не содержит рекламы. Выполняет свою непосредственную задачу - автоматизацию рыбалки в WoW - и ничего более. Однако если админы будут против -. . .
Программный отбор значений справочника
Maks 21.03.2026
Установка программного отбора значений справочника "Сотрудники" из модуля формы документа. В качестве фильтра для отбора служит предопределенное значение перечислений. Процедура. . .
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru