Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets > [QT] Проблема с Qt в Linux SUSE


Автор: del3d 19.11.2007, 16:37
Здравствуйте люди!

Дело было так: создал в домашнем каталоге подкаталог main.
В нем текстовый файл main.cpp.
в нем написал так:
Код

#include <qapplication.h>
#include <qlabel.h>
int main (int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel lbl ("Hello!", 0);
    app.setMainWidget(&lbl);
    lbl.show();
    return app.exec();
}


Запустил терминал.
Там написал:
Код

qmake -project
qmake main.pro

Соответственно создался файл проекта и Маке файл.
Далее пишу:
Код

make

А он мне:
Код

student@linux03:~/main> make
g++ -c -pipe -O2 -Wall -W -D_REENTRANT  -DQT_NO_DEBUG -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED -I/usr/share/qt4/mkspecs/default -I. -I/usr/include/QtCore -I/usr/include/QtCore -I/usr/include/QtGui -I/usr/include/QtGui -I/usr/include -I. -I. -I. -o main.o main.cpp
main.cpp: In function ‘int main(int, char**)’:
main.cpp:8: error: ‘class QApplication’ has no member named ‘setMainWidget’
make: *** [main.o] Ошибка 1
student@linux03:~/main>


Все это происходило под Linux SUSE 10.2. В ASPLinux 11.2 все работало, создавался Лабел.
Не подскажите, как заставить SUSE компилировать файлы?





Автор: bsa 19.11.2007, 18:00
Думаю, в ASP Linux у тебя был Qt3, а в SUSE Qt4. Поэтому не нужно setMainWidget. И инклюды должны быть другие:
Код
#include <QApplication>
#include <QLabel>
int main (int argc, char *argv[])
{
    QApplication app(argc, argv);
    QLabel lbl ("Hello!", 0);
    lbl.show();
    return app.exec();
}

Автор: del3d 19.11.2007, 18:42
Ого, надо литературу искать по Qt4. 
А я что-то и не думал, что синтаксис будет другой.

Спасибо. Попробую.

Автор: bsa 19.11.2007, 18:48
Цитата(del3d @ 19.11.2007,  18:42)
Ого, надо литературу искать по Qt4. 
А я что-то и не думал, что синтаксис будет другой.

Спасибо. Попробую.

Какую литературу?!? зайди на http://doc.trolltech.com и посмотри пару примеров. Думаю, они тебе помогут понять разницу.

Автор: Любитель 22.11.2007, 18:52
А ещё попробуй запустить assistant и qtdemo smile

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)