URL: https://www.opennet.ru/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID9
Нить номер: 6465
[ Назад ]

Исходное сообщение
"Программирование в KDevelope Qt объектов"

Отправлено kakay , 16-Май-07 07:19 
Появилась проблемма с .h файлами. При попытке собрать пример взятый из документации по KDevelope Cursors или AnalogClock проекты НЕ СОБИРАЮТСЯ! Ошибка ввода/вывода.
А все начинается с того, что в .h файлах типа того ОШИБКИ! Но ведь так не может быть!?
Все ашники установлены и лежат по указаному пути, но KDevelope не может их обнаружить.
Пишет сообщение, что файл или каталог не найдены.

Пожалуйста разъясните мне этот момент. Сильно встало дело.
Крайне необходимо разобраться с этим вопросом. Заранее спасибо.


Содержание

Сообщения в этом обсуждении
"Программирование в KDevelope Qt объектов"
Отправлено dronord , 16-Май-07 12:37 
Попробуй прямые пути до .h файлов.
KDevelop не видел, а это так, соображения.

"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 16-Май-07 13:42 
>Появилась проблемма с .h файлами. При попытке собрать пример взятый из документации
>по KDevelope Cursors или AnalogClock проекты НЕ СОБИРАЮТСЯ! Ошибка ввода/вывода.
>А все начинается с того, что в .h файлах типа того ОШИБКИ!
>Но ведь так не может быть!?
>Все ашники установлены и лежат по указаному пути, но KDevelope не может
>их обнаружить.
>Пишет сообщение, что файл или каталог не найдены.
>
>Пожалуйста разъясните мне этот момент. Сильно встало дело.
>Крайне необходимо разобраться с этим вопросом. Заранее спасибо.

Появилась? А раньше была? После чего появилась?
Какой Qt используешь? И с каким Kdevelop собран?


"Программирование в KDevelope Qt объектов"
Отправлено kakay , 17-Май-07 07:21 
до этого проблем с .h файлами не было.
Просто пытаюсь писать сокеты, но как-то пока не очень выходит.
Поэтому решила попробовать поработать и потестить како-нить примерчик.
Вот на примерах ничего и не выходит.

Компиляция проходит только с библиотеками не относящимися к QT.

Есть еще вопрос: меня интересуют таймеры и их реализация.
Кто может подсказать?


"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 17-Май-07 09:32 
>до этого проблем с .h файлами не было.
>Просто пытаюсь писать сокеты, но как-то пока не очень выходит.
>Поэтому решила попробовать поработать и потестить како-нить примерчик.
>Вот на примерах ничего и не выходит.
>
>Компиляция проходит только с библиотеками не относящимися к QT.
>
Ну вообщем понятно, а ты чем их пытаешься компилировать? нужен moc!!! от qt
Расскажу как я делал для Qt3:
Makefile:
# получаем сначала мейк из файла проекта
s423.mak: s423.pro Clock.h
        qmake -o s423.mak s423.pro
# А вот это мейк обрабатывается обычными средствами
s423: s423.cpp s423.mak
        make -f s423.mak s423

набираешь make s423 и получаешь слинкованный файл.

#Ну а это сам файл проекта
s423.pro:
TEMPLATE  = app
HEADERS  += Clock.h
SOURCES  += s423.cpp
TARGET    = s423
CONFIG   += qt warn_on relase

#А исходники смотри в книжке ;-)

>Есть еще вопрос: меня интересуют таймеры и их реализация.
>Кто может подсказать?
Интересуют таймеры? почитай Макс Шлее:Qt профессиональное программирование C++
Глава 35, 423 страница


"Программирование в KDevelope Qt объектов"
Отправлено kakay , 17-Май-07 13:29 
Извиняюсь конечно за наглость, но нельзя ли где-нить скачать данную
литературу в электронном виде?
Макс Шлее:Qt профессиональное программирование C++

"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 17-Май-07 13:50 
>Извиняюсь конечно за наглость, но нельзя ли где-нить скачать данную
>литературу в электронном виде?
>Макс Шлее:Qt профессиональное программирование C++

? Не знаю, поищи может в Интернете есть где, у меня бумажный вариант.
Но думаю тебе все равно не очень подойдет, потому как там чисто Qt рассматривается.
А исходник вот:
Clock.h
#ifndef  _Clock_h_
#define  _Clock_h_

#include <qlabel.h>
#include <qdatetime.h>
#include <qtimer.h>

class Clock : public QLabel {
   Q_OBJECT
private:
   QDateTime  oldTime;

public:
   Clock(QWidget* pwgt = 0, const char* pszName = 0)
           : QLabel(pwgt, pszName)
   {
       oldTime = QDateTime::currentDateTime();
       QTimer* ptimer = new QTimer(this);
       connect(ptimer, SIGNAL(timeout()), SLOT(updateDateTime()));
       ptimer->start(200, false);
       updateDateTime();
   }

public slots:
   void updateDateTime()
   {
      QDateTime curTime = QDateTime::currentDateTime();
      if(oldTime != curTime) {
         oldTime = curTime;
         setText("<H2><CENTER>" + curTime.toString(LocalDate) + "</CENTER></H2>");
      }
   }
};

#endif  //  _Clock_h_

s423.cpp:
#include <qapplication.h>
#include "Clock.h"


int main(int argc, char** argv) {
   QApplication  app(argc, argv);

   Clock  lbl;

   app.setMainWidget(&lbl);
   lbl.show();

   return app.exec();
}



"Программирование в KDevelope Qt объектов"
Отправлено kakay , 17-Май-07 13:38 
Простите за наглость, но не могли бы ввы подсказать где можно найти данную литературу в электронном виде?

"Программирование в KDevelope Qt объектов"
Отправлено dronord , 17-Май-07 16:59 
Какая ты наглая =) Ищи в гугле клондайки для программистов, а на них свою книгу. Например, http://wingman.org.ru

"Программирование в KDevelope Qt объектов"
Отправлено kakay , 22-Май-07 07:08 
Все равно не могу найти ТУ САМУЮ книжечку!!!!! Помогите плииииззззз.....:)))

"Программирование в KDevelope Qt объектов"
Отправлено kakay , 22-Май-07 12:39 
Уважаемый NuINu, почему-то у меня совсен не получается.
А этот moc устанавливается отдельно?
Если не сложно, расскажите поподробнее. Очень уж хочу в этом разобраться.
Заранее спасибо.

"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 22-Май-07 14:06 
>Уважаемый NuINu, почему-то у меня совсен не получается.
>А этот moc устанавливается отдельно?
>Если не сложно, расскажите поподробнее. Очень уж хочу в этом разобраться.
>Заранее спасибо.
мок устанавливается вместе Qt, и находиться где нибудь в /usr/lib/qt/bin
если у тебя стот КДЕ наверняка и библиотеки от Qt есть, а там должен быть и мок.

А что конкретно не получается тот код который я послал скомпилировать?
пиши подробней, что за ошибки. что и как делала.


"Программирование в KDevelope Qt объектов"
Отправлено kakay , 23-Май-07 13:40 
Добрый день, NuINu, мне хочется поблагодарить вас за выдержку и терпение.
Надеюсь, что с вашей помощью я добьюсь результатов.
Книжку заказала, пару недель и она придет.

А не получаются следующие моменты:
я создаю проект, копирую в него код представленный вами.
Затем
[root@kate ex3]# s423.mak: s423.pro Clock.h
bash: s423.mak:: command not found
[root@kate ex3]# 423.mak: s423.pro Clock.h
bash: 423.mak:: command not found
[root@kate ex3]#         qmake -o s423.mak s423.pro
Error processing project file: /root/ex3/s423.pro
[root@kate ex3]# cd '/usr/share/aclocal'
[root@kate aclocal]# cd '/root/.kde/share/apps/kdevfilecreate/file-templates'
[root@kate file-templates]# cd '/root/ex3/src'
[root@kate src]# s423: s423.cpp s423.mak
bash: s423:: command not found
[root@kate src]#         make -f s423.mak s423
make: s423.mak: Нет такого файла или каталога
make: *** Нет правила для сборки цели `s423.mak'.  Останов.
[root@kate src]# s423.mak: s423.pro Clock.h
bash: s423.mak:: command not found
[root@kate src]#         qmake -o s423.mak s423.pro


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


"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 23-Май-07 14:00 
>[root@kate ex3]# s423.mak: s423.pro Clock.h


Так ГОСПОДА, коментировать НЕ НАДО!! а то девушки натуры чувственные обидится!!!


"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 23-Май-07 14:23 
Ну начнем с простого:
>А не получаются следующие моменты:
>я создаю проект, копирую в него код представленный вами.
проект создавать не надо! это проект Qt. его создадим в текстовом редакторе.
я пользуюсь mc и kedit, надеюсь графическая оболочка на компе есть(а то kedit работать не будет)

и так отвлеченно, на будущее НЕ НАДО РАБОТАТЬ ПОД РУТОМ!!! создайте себе пользователя!!!!
>Затем
>[root@kate ex3]# s423.mak: s423.pro Clock.h
создай директорию проекта, ну пусть в домашней папке.
в баше, команда >
mkdir clock
cd clock
touch Makefile
kedit Makefile

вставляешь из буфера обмена в него
#----------cut--------------
s423.mak: s423.pro Clock.h
        qmake -o s423.mak s423.pro

s423: s423.cpp s423.mak
        make -f s423.mak s423
#---------cut-------------
это и будет Мейк фал. ну и запоминаем его.

дальше:
touch s423.pro
kedit s423.pro
#----------cut--------------
TEMPLATE  = app
HEADERS  += Clock.h
SOURCES  += s423.cpp
TARGET    = s423
CONFIG   += qt warn_on relase
#----------cut--------------
и запоминай, получаем файл проекта qt

аналогично создай файлы Clock.h и s423.cpp
все теперь давай команду
make s423

и пиши про ошибки.

>Вот таков результат. Скорее всего я все делаю неправильно.
>Прошу вас подскажите!!!!!!!
>Мне уже стыдно смотреть в глаза начальника.
Видно еще мало работала, ничего потом будешь смотреть ему в глаза с каждым днем все наглее и наглее :-) (или уже не ему ;-))



"Программирование в KDevelope Qt объектов"
Отправлено kakay , 24-Май-07 07:15 
Спасибочки!!!!
Ща попробую. Я очень чувствительная!!!!
Пока больше ничего спрашивать не буду, попробую это.
Достаточно не просто переходить с Windows на Linux.

"Программирование в KDevelope Qt объектов"
Отправлено kakay , 24-Май-07 13:12 
[root@kate ~]# make s423
g++     s423.cpp   -o s423
s423.cpp:1:26: error: qapplication.h: Нет такого файла или каталога
In file included from s423.cpp:2:
Clock.h:4:20: error: qlabel.h: Нет такого файла или каталога
Clock.h:5:23: error: qdatetime.h: Нет такого файла или каталога
Clock.h:6:20: error: qtimer.h: Нет такого файла или каталога
Clock.h:33:3: warning: no newline at end of file
Clock.h:1:1: error: unterminated #ifndef
s423.cpp:14:2: warning: no newline at end of file
Clock.h:8: error: expected class-name before ‘{’ token
Clock.h:9: error: ISO C++ forbids declaration of ‘Q_OBJECT’ with no type
Clock.h:10: error: expected ‘;’ before ‘private’
Clock.h:14: error: expected `)' before ‘*’ token
Clock.h:24: error: expected `:' before ‘slots’
Clock.h:25: error: expected primary-expression before ‘void’
Clock.h:25: error: ISO C++ forbids declaration of ‘slots’ with no type
Clock.h:25: error: expected ‘;’ before ‘void’
Clock.h:33: error: expected `;' before ‘}’ token
s423.cpp: In function ‘int main(int, char**)’:
s423.cpp:6: error: ‘QApplication’ was not declared in this scope
s423.cpp:6: error: expected `;' before ‘app’
s423.cpp:10: error: ‘app’ was not declared in this scope
s423.cpp:11: error: ‘class Clock’ has no member named ‘show’
make: *** [s423] Ошибка 1

Точно такие же ошибки, как и раньше. Что я опять сделала не так?
А может это быть из-за того, что я работаю под root?


"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 24-Май-07 13:56 
>[root@kate ~]# make s423
>g++     s423.cpp   -o s423
>s423.cpp:1:26: error: qapplication.h: Нет такого файла или каталога
Следи за рукой!!! что у тебя пишет при команде make s423?
g++ ......
А что написано в моем мейке?
s423: s423.cpp s423.mak
       make -f s423.mak s423
!!!!!
файл s423.mak в диреектории присутствует?? думаю что нет.
Проверь пожалуйста свой Makefile на предмет присутствия в нем двух одинаковых целей s423.

>Точно такие же ошибки, как и раньше. Что я опять сделала не
>так?
>А может это быть из-за того, что я работаю под root?
Вообщем то нет, но все же советую изучить две команды groupadd, useradd
минутное дело! и passwd



"Программирование в KDevelope Qt объектов"
Отправлено kakay , 24-Май-07 13:36 
А может быть такое, что как-то не правильно прописаны пути для .h файлов?
И именно для ашников Qt?

"Программирование в KDevelope Qt объектов"
Отправлено kakay , 28-Май-07 12:45 
Короче говоря, нашла я тут себе справочник команд.
Пересмотрела его.
Но откомпилировать проект не получается.
Только не злитесь, пожалуйста, а напишите еще раз команды с атрибутами для компиляции.
Спасибо.

"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 28-Май-07 13:28 
>Короче говоря, нашла я тут себе справочник команд.
>Пересмотрела его.
>Но откомпилировать проект не получается.
>Только не злитесь, пожалуйста, а напишите еще раз команды с атрибутами для
>компиляции.
>Спасибо.
;-) А чего мне злиться то? :-)
Ладно не буду дальше мучать. есть "королевский" путь. Если уж не в программирование, то покрайней мере в компиляцию Qt проектов.

Вот что у меня написано в записной книжке:
#В директории timer имеем два файла Clock.h и s423.cpp

#не имея ничего кроме исходников можно автоматически получить файл проекта
qmake -project

#получили файл timer.pro

#А затем и майк файл
qmake -makefile

#получили файл Makefile

#А затем просто собрать проект
make

#ву аля. ;-)
Ну а так, если все таки будут проблемы, оставь номер аськи я свяжусь.


"Программирование в KDevelope Qt объектов"
Отправлено kakay , 29-Май-07 06:35 
Все так и делаю.
А не может у меня какой системной ошибки быть?
Спасибо за "королевский" подход.
К сожалению на работе аська не разрешена. Типа, служебный инет.
Но могу дать номер. Я ведь все же дома иногда в аське сижу.

"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 29-Май-07 09:34 
>Все так и делаю.
>А не может у меня какой системной ошибки быть?
>Спасибо за "королевский" подход.
>К сожалению на работе аська не разрешена. Типа, служебный инет.
домашняя не подойдет, я по вечерам не работаю.

>Но могу дать номер. Я ведь все же дома иногда в аське
>сижу.

Понимаешь, я немогу тебе сказать ничего насчет системной ошибки, потому что ты ее здесь не приводишь, приведи вывод команды make.
И пожалуйста перечитай мой пост касаемый предыдущего вывода этой команды. Ты после него что нибудь в Makefile изменила?

Вообщем приводи ошибки и уже с ними и будем разбираться.(да и за одно сразу файл мейк тоже)


"Программирование в KDevelope Qt объектов"
Отправлено Dimonobolon , 09-Июн-07 14:25 
Доброго времени суток...
Так же столкнулся с этой проблемой :
добавляю новый класс в проэкт KDevelop
генерируется новий класс из any_file.ui (*.h , *.cpp)
Пересобираю проэкт и получаю :

" any_file.h: Нет такого файла или каталога "
ну следущие из этого последствия .

Проверял наличие файла,прописывал прямые пути к ашнику,но безуспешно

К сожелению ответа на свою проблему не нашёл,на носу диплом....выручайте.

Понимаю всю прелесть командной строки,но хотелось бы услышать что-то про сам KDevelop,предпологаю запарка в нём....или....

P.S. в своих страданиях использую книгу Н.Секунова.


"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 09-Июн-07 15:16 
>Доброго времени суток...
>Так же столкнулся с этой проблемой :
>добавляю новый класс в проэкт KDevelop
>генерируется новий класс из any_file.ui (*.h , *.cpp)
>Пересобираю проэкт и получаю :
>
>" any_file.h: Нет такого файла или каталога "
>ну следущие из этого последствия .
>
>Проверял наличие файла,прописывал прямые пути к ашнику,но безуспешно
>
>К сожелению ответа на свою проблему не нашёл,на носу диплом....выручайте.
>
>Понимаю всю прелесть командной строки,но хотелось бы услышать что-то про сам KDevelop,предпологаю
>запарка в нём....или....
>
>P.S. в своих страданиях использую книгу Н.Секунова.
Ну не знаю у меня вообще Кдевелоп старый, я Qtdesigner использую, но суть у них одна, они они используют один и тот же файл проекта, если проект не собирается то надо смотреть что с проектом.
проверь две переменные
HEADERS
INCLUDEPATH
хотя если ты добавляешь просто ui файл, то достаточно к проекту добавить
в поле: FORMS = any_file.ui

по идее этого достаточно.



"Программирование в KDevelope Qt объектов"
Отправлено Dimonobolon , 09-Июн-07 15:42 
> в поле: FORMS = any_file.ui

>проверь две переменные
>HEADERS
>INCLUDEPATH

Не подскажете где эти переменные правятся,и вообще файл сборки глянуть бы...!!!!

Как ни странно  в один из 20 раз получилось таки собрать проэкт,незнаю каким макаром но это было в инс-те,там он и остался.
Вообще всё время творил на С++Билдер,МСВижуал, gcc(консольки писал)
А тут получил тему с использыванием GUI под Линукс,в общих чертах клиент МуСКЛ
Буду признателен за Линки и Сорсы связанные с этим делом.
И мож у кого завалялась libstdc++.so.5 поделитесь(.линк пойдёт)??

Кстати для дизайна юзаю тоже Qtdesigner
Сенкс за быстрый ответ!!! Щас будем дальше колупать


"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 09-Июн-07 15:53 
>> в поле: FORMS = any_file.ui
>
>>проверь две переменные
>>HEADERS
>>INCLUDEPATH
>
>Не подскажете где эти переменные правятся,и вообще файл сборки глянуть бы...!!!!
>
это файл проекта, с расширением .pro, для простого проекта в нем практически ничего нет:
------------------------------------
TEMPLATE        = app
LANGUAGE        = C++

CONFIG  += qt warn_on release

SOURCES += s504.cpp

FORMS   = mydialog.ui

unix {
  UI_DIR = .ui
  MOC_DIR = .moc
  OBJECTS_DIR = .obj
}

--------------------------------------------------

имея его запускаешь
qmake - получается Makefile, но его один фиг можно не смотреть, хотя если бага в файле проекта, то и будет видно, какой операции нету.
ну а дальше обычный make запускаешь и все.

>Как ни странно  в один из 20 раз получилось таки собрать
>проэкт,незнаю каким макаром но это было в инс-те,там он и остался.
>


"Программирование в KDevelope Qt объектов"
Отправлено Dimonobolon , 09-Июн-07 16:11 
OK принял всё ко вниманию...стартую в Линукс(Инет рубит тока под виндой т.к. инэтовская-прога просит libstdc++.so.5 которую выкачать из мира не могу).
Извинясь за наглость: не мог бы элементарный исходничег проекта мне на мейл прислать для полного щастья потому как кроме SimpleKDE("Hello World!!!") ничё не собирается.Вернее если его править то всё норм, а вот из Дизайнера затянуть новое ГУИ не получается.
Ostropik@bigmir.net


"Программирование в KDevelope Qt объектов"
Отправлено елка , 12-Июн-07 01:08 
Николай Секунов "Программирование на C++ в Linux"
правда там староватая версия кдевелопа описана, но немного "повтыкая" можно разобраться


"Программирование в KDevelope Qt объектов"
Отправлено Dimonobolon , 13-Июн-07 01:21 
Блин всё чудно если ручками всё писать но .... есть же QtDesigner....у меня основная непонятка каким образом мне из *.ui KDevelop-ом сгенерить новый класс...этому вопросу во всех найденых мною источника уделено оч мало внимания = восновном это так "Нажимаем добавить новый класс производный от QWidget вписываем хедеры куда надо нажимаем F8,F9 и наслаждаемся)))) [сгенерированными ошибками компилятора]";

Если кто-то может бм подробнее описать єтот процес(все его подводные камни,и важные позиции),или дать ссылоку на данную инфу буду оч признателен....


"Программирование в KDevelope Qt объектов"
Отправлено NuINu , 13-Июн-07 11:23 
>Блин всё чудно если ручками всё писать но .... есть же QtDesigner....у
>меня основная непонятка каким образом мне из *.ui KDevelop-ом сгенерить новый
>класс...этому вопросу во всех найденых мною источника уделено оч мало внимания
>= восновном это так "Нажимаем добавить новый класс производный от QWidget
>вписываем хедеры куда надо нажимаем F8,F9 и наслаждаемся)))) [сгенерированными ошибками компилятора]";
>
>
>Если кто-то может бм подробнее описать єтот процес(все его подводные камни,и важные
>позиции),или дать ссылоку на данную инфу буду оч признателен....
Я уж сам ui не буду здесь приводить, а команды напишу, в выходные позанимался с kdevelop
проект который он генерирует, очень сильно отличается от qt шного. и непосредственно ui формата в kdevelop я не нашел. с ним работает kdevelop designer, он формы то создает, но как их потом к проекту подсоединить(именно kdevelop-проекту) я пока не знаю.
Ну вообщем есть в qt такой uic, он по form1.ui создает хеадер и класс.
вот команды:

uic form1.ui -o form1.h
uic -impl form1.h form1.ui -o form1.cpp

вообще очень рекомендую qt assistant юзать.


"Программирование в KDevelope Qt объектов"
Отправлено Dimonobolon , 13-Июн-07 23:54 
>uic form1.ui -o form1.h
>uic -impl form1.h form1.ui -o form1.cpp

За это спасибо!!(я немножко не так делал на выходе получал один файл)
Но проблема создания ГУИ для KDevelop средствами QtDesigner для меня остаётся открыта(((
Щас конешно поробую в чудо командной строке сгенерить класс....но думаю что не оч получится.
также жду интересные ЛИНКИ на эту тему...


"Программирование в KDevelope Qt объектов"
Отправлено sim , 01-Авг-07 23:30 
>[оверквотинг удален]
>SOURCES  += s423.cpp
>TARGET    = s423
>CONFIG   += qt warn_on relase
>
>#А исходники смотри в книжке ;-)
>
>>Есть еще вопрос: меня интересуют таймеры и их реализация.
>>Кто может подсказать?
>Интересуют таймеры? почитай Макс Шлее:Qt профессиональное программирование C++
>Глава 35, 423 страница

Выходит новая Qt4. Профессиональное программирование на C++
http://www.bhv.ru/books/full_contents.php?id=181645


"Программирование в KDevelope Qt объектов"
Отправлено Михаил , 30-Ноя-09 14:51 
>[оверквотинг удален]
>>
>>#А исходники смотри в книжке ;-)
>>
>>>Есть еще вопрос: меня интересуют таймеры и их реализация.
>>>Кто может подсказать?
>>Интересуют таймеры? почитай Макс Шлее:Qt профессиональное программирование C++
>>Глава 35, 423 страница
>
>Выходит новая Qt4. Профессиональное программирование на C++
>http://www.bhv.ru/books/full_contents.php?id=181645

Уже есть книга еще новее про Qt4.5
http://www.bhv.ru/books/book.php?id=186572