Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!

Ogłoszenie

Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.

#1  2011-08-13 17:03:50

  HAL9000 - Użytkownik

HAL9000
Użytkownik
Zarejestrowany: 2006-04-22

Qt

Witam
Tym razem szukam pomocy w temacie qt, mianowicie na początek ktoś wie jak skonfigurować codeblocks aby to jakoś działało z qt bo jak dotąd prosta aplikacja w postaci:

Kod:

#include <QApplication>
//#include <QFont>
#include <QPushButton>
#include <QTextCodec>
#include <QMainWindow>

int main(int argc, char* argv[])
{
    QApplication app(argc, argv);
    QTextCodec::setCodecForCStrings(QTextCodec::codecForName("UTF-8"));
    QMainWindow win;
    win.setWindowTitle("disco");
    QPushButton quit("Wyjście", &win);
    quit.setGeometry(30, 10, 75, 30);
    //quit.setFont(QFont("Times", 12, QFont::Bold));
    QObject::connect(&quit, SIGNAL(clicked()), &app, SLOT(quit()));
    win.show();
    return app.exec();
}

generuje w tym programie 117 ostrzeżeń i 1 błąd:
http://www.h9k.republika.pl/cb.txt
podczas gdy ten sam program kompilowany manualnie daje następujący wynik:

Kod:

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/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4 -I. -I. -o main.o main.cpp
g++ -Wl,-O1 -o newtest main.o    -L/usr/lib -lQtGui -lQtCore -lpthread

I druga sprawa, ktoś poleci fajną książkę do qt (która nie zmarnuje mojego czasu), fakt że qt wydaje się mieć fantastyczną dokumentację ale przydałoby się coś co pokaże mi taki ogólny zarys w jaki sposób te małe klocki poskładać w większą i co najważniejsze dobrze działającą całość.
Poprzednio próbowałem ogarnąć te graficzne klasy javy ale w pewnym momencie doszedłem do wniosku, że w ogóle nie rozumie co się tam dzieje (miliony klas jeszcze więcej metod) niby jakieś okienka się pojawiały ale jak wspomniałem nie czuje się w tym języku (nawet nie chodzi o sam język ale o organizację klas i metod) zbyt komfortowo a w qt przynajmniej na poczatku wydaje mi się to jakoś logiczniej poukładane. Czy też tutaj też jest tak jak to mówią brytyjczycy "learn it by heart".


For some reason I'm thinking I'm still 25 but I act like I'm 12.

Offline

 

#2  2011-08-13 17:19:46

  BiExi - matka przelozona

BiExi
matka przelozona
Skąd: Gorlice
Zarejestrowany: 2004-04-16
Serwis

Re: Qt

HAL9000 co do IDE do qt to polecam QtCreatora
A tu masz powiedzmy takiego minimalnego tutoriala http://sector.ynet.sk/qt4-tutorial/

Offline

 

#3  2011-08-13 19:38:40

  HAL9000 - Użytkownik

HAL9000
Użytkownik
Zarejestrowany: 2006-04-22

Re: Qt

Chyba jednak bez jakiejs książki, która mnie w to wszystko powierzchownie wprowadzi sie nie obejdzie ;-)
Przykładowo:

Kod:

#include <QtCore/QCoreApplication>
#include <QDir>
#include <QStringList>
#include <iostream>
using std::endl; using std::cout;
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QDir dir("/home/HAL9000");
    QStringList entryl = dir.entryList();
    if(entryl.isEmpty())
        cout << "Lista jest pusta" << endl;
    else
        //for(QStringList::const_iterator it = entryl.begin(); it!=entryl.end();++it)
        //for(int i=0; i<entryl.size();++i)
        for(QStringList::const_iterator it=entryl.constBegin();it!=entryl.constEnd();++it)
            cout << (*it).toLocal8Bit().constData() << endl;
    return a.exec();
}

Nad tym aby wylistowac zawartosc katalogu meczylem sie z pol godziny. (precyzyjniej to nad wyswietleniem zawartosci tej list)
Szukajac hierarchii klas qt trafilem na http://cep.xor.aps.anl.gov/software/qt4-x11-4.2.2-b … e493e62bc5502 wiec mysle sobie luz, napisze na probe taki program ale kto mogl sie spodziewac, ze zawartosc tej listy trzeba przepuscic przez dwie nastepne metody aby cos zobaczy tutaj -> http://cep.xor.aps.anl.gov/software/qt4-x11-4.2.2-b … ing_list.html wspomnieli o tym wyjatkowo drobnym drukiem, dopiero gdy mnie juz nadzieje opuscily wpisalem qstringlist i na stronie qt bylo rozwiazanie http://doc.qt.nokia.com/latest/qstringlist.html ale jezeli na kazdej takiej glupocie mialbym tracic 0.5 godziny to juz wole wydac te pare zl na ksiazke lub parier i tusz do drukarki bo przeciez nie bede sie uczyl zawartosc cale bibliotek a w ksiazkach zazwyczaj sa te najczesciej uzywane konstrukcje opisane. Wiec jaka polecacie lekture?
http://developer.qt.nokia.com/books
http://www.amazon.com/s/ref=nb_sb_noss?url=search-a … p;x=0&y=0


For some reason I'm thinking I'm still 25 but I act like I'm 12.

Offline

 

#4  2011-08-13 21:03:01

  Huk - Smoleńsk BULWA!

Huk
Smoleńsk BULWA!
Zarejestrowany: 2006-11-08

Re: Qt

Po pierwsze ten progrmik który napisałeś, ja bym napisał bez bawienia się z iteratorami (bo na cholerę się męczyć ;] ? ):

#include <QtCore/QCoreApplication>
#include <QDir>
#include <QStringList>
#include <iostream>
using std::endl; using std::cout;
int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);
    QDir dir("/home/HAL9000");
    QStringList entryl = dir.entryList();
    if(entryl.isEmpty())
        cout << "Lista jest pusta" << endl;
    else
//        for(QStringList::const_iterator it=entryl.constBegin();it!=entryl.constEnd();++it)
//            cout << (*it).toLocal8Bit().constData() << endl;
        for(int i=0;i<entryl.count();++i)
        {
            cout << entryl.at(i).toStdString() << "\n";
        }
    return a.exec();
}

Po drugie co do tematu - IMHO nie ma sensu brać książki o ile używasz QT Creatora, czemu tak? Ano temu że w Creatorze jak czegoś nie wiesz po prostu klikasz na daną klasę, obiekt, czy metodę i "F1" przenosi cię ładnie do dokumentacji (DLA DANEJ RZECZY) w której praktycznie wszystko jest (no... ok może nie wszystko ale większość), do tego dochodzi system podpowiedzi kodu (IMHO ten z CodeBlocks - o ile się nic nie poprawiło - może się po prostu schować), i pożądna obsługa kompilatora (chyba zresztą Creator jest jedną z niewielu IDE pod Linucha obsługujących natywnie debugera).

Samemu próbowałem używać książek, ale szybko doszedłem do wniosku że lepiej wyposażyć się w dokumentację+QT Creatora+google ;]. Jak się uprzesz to wiem że jest jakaś oficjalna książka (starsza wersja dostępna za free chyba ze strony Nokii, w formie pdf), ale szczerze - na cuda nie licz, problem, z QT jest taki sam jak z Javą czy .Net'em - są to cholernie rozbudowane API (QT chyba najmniej - ale mimo to oficjalne API ma kilkadziesiąt klas, każda od kilku do kilkudziesięciu metod itd) co sprawia że nauka step-by-step z książeczki w praktyce była by bardzo uciążliwa, ludzie od QT to zauważyli i stworzyli Creatora - ktry IMHO jest jednym z najlepszych IDE pod względem startowania od zera w QT, właśnie dzięki szybkiemu dostępowi do dokumentacji.

Ostatnio edytowany przez Huk (2011-08-13 21:04:53)

Offline

 

#5  2011-09-04 16:52:48

  HAL9000 - Użytkownik

HAL9000
Użytkownik
Zarejestrowany: 2006-04-22

Re: Qt

Witam ponownie,
Tak się powoli zaczynam bawic tym wszystkim i pojawi się tak oto problem, którego samodzielnie nie jestem w stanie rozwiązać, mianowicie:
http://www.h9k.republika.pl/tray.jpg
Jak widać ta chmurka, która teoretycznie powinna pojawić się nad ikoną icq (wziąłem pierwszy lepszy obrazek)  w zasobniku systemowym pojawia się jak widać w lewym górnym rogu a to chyba nie powinno tak być mam rację? ;-)
Pytałem już na kanale Qt na ircu ale jedyne co napisali to to że jest to jakiś błąd implementacji zasobnika a nie kwestia Qt i niewiele z tym mogę zrobić ale jakos im nie wierze.


Przy okazji kiedy szukałem jakiego łagodnego wprowadzenia w świat Qt trafiłem na to
http://www.voidrealms.com/tutorials.aspx?filter=qt
może się w przyszłości komuś przyda.


For some reason I'm thinking I'm still 25 but I act like I'm 12.

Offline

 

Stopka forum

Powered by PunBB
© Copyright 2002–2005 Rickard Andersson
Nas ludzie lubią po prostu, a nie klikając w przyciski ;-)