Problem z Biblioteką Qt


(Konithir) #1

Kupiłem taką fajną książeczke

http://helion.pl/ksiazki/cppwyk.htm

I wybrałem biblioteke Qt. Tylko coś jest źle (prawdopodobnie z moim kompikatorem) bo nie chce ŻADEN przykład działać.

np.

#include 

#include 

#include 


int main(int argc, char *argv[])

{

    QApplication app (argc, argv);

    QTextCodec::setCodecForCStrings (QTextCodec::codecForName ("Windows-1250"));

    QPushButton button ("Witaj Świecie!");

    button.resize (100, 30);

    button.show();

    return app.exec();

}

Akurat teraz mi pisze ,że nie może odnaleźć pliku??? A za innym rozem że błąd np. składni , że nie zna różnych nagłówków.

Używam Dev-cpp i wxDev-cpp.

Może mi ktoś pomóc?


(Kacper Gruszczynski) #2

Prawdopodobnie źle skonfigurowałeś środowisko DEV-CPP. Na stronie 12 masz dokładny opis jak to zrobić.


(Ryan) #3

Zdefiniuj "działać". Nie kompiluje się? Nie linkuje? Nie uruchamia? Uruchamia z błędem? Jaki jest widoczny efekt tego "nie działania"?


(Bartoszlenar) #4

generalnie zadalbym te same pytania co @Ryan, ale szczerze mowiac polece Ci zintegrowany Qt Creator.

jest fabrycznie ustawiony, wszystko dziala, a dodatkowo ma zintegrowana pomoc. ustawiasz kursor np na obiekcie, wciskasz F1, otwiera sie dokumentacja dotyczaca danej klasy czy metody. imho swietna sprawa.

Qt4 uzywalem w VS (za pomoca latek serwowanych przez qtsoftware), kdevelop i wlasnie dev-cpp. najgorzej wspominam ten ostatni.


(Konithir) #5

Zrobiłem raczej wszystko z o co prosili w książce.

Zainstolwałem Qt i Dev-C++ , w opcaj kompikatora zmnienilem na qt w bin , lib i nagłówki c++.

Dev-c++

komunikat:

[Linker error] undefined reference to `_imp___ZN12QApplicationC1ERiPPci'

[Linker error] undefined reference to `_imp___ZN11QPushButtonC1ERK7QStringP7QWidget'

[Linker error] undefined reference to `_imp___ZN12QApplication4execEv'

[Linker error] undefined reference to `QPushButton::~QPushButton()'

[Linker error] undefined reference to `QApplication::~QApplication()'

...


(Ryan) #6

Dodałeś w ustawieniach projektu, który kompilujesz, liby QT?


(Konithir) #7

?? , Jak??


(Ryan) #8

W ustawieniach projektu. Książka powinna to wyjaśniać, w przeciwnym wypadku podążanie za nią "krok po kroku" traci sens.


(Oski225) #9

Książka jest naprawdę dobra, jednakże opisane w niej rzeczy są robione starszą wersją qt. Tak jak penguin polecę ci QT Creatora. Spokojnie przykłady z książki będą działać. Dev-Cpp jest już stare, a wxDev-cpp jest do biblioteki wxWidget.

Ale jak już się upierasz nad dev'em, to w książce(chyba pierwszy rozdział) jest opisane bardzo dokładnie jak konfigurować środowiska do pracy z wxWidget i qt.


(Konithir) #10

Książka nie wyjśnia tego...Wg niej wszystko powinno być już w porządku.

-- Dodane 20.09.2009 (N) 17:46 --

Dobrze ... mam Qt Creator... po angielsku... orłem z ang nie jestem jeszcze... i wpisuje ten kod... biore run i nic ... i przokazji tez build , debug i znowu run i nic. Prawdopodobnie moja wina ale nie działa...


(Oski225) #11
  1. File->New

  2. Empty QT4 Project

  3. Wpisujesz nazwe->next

  4. Finish

  5. Prawym na nazwie projektu-> add new

  6. C++ source file

  7. Wpisujesz nazwe(np.main)

  8. Finish

  9. Wklejasz twój kod

  10. Build->Run

Jeśli to wszystko się ładnie skompiluje(nie wywali błędu) a się nie uruchomi:

  1. Tools-> Options

  2. QT4 -> Qt Versions

  3. Sprawdzasz, czy w debugging helperze jest zielony ptaszek

  4. Jeśli nie ma klikasz "+" w Version Name wpisujesz np. Qt4.5. W path wskazujesz folder, w którym zainstalowałeś qt(domyślnie jest to chyba C:\Qt\2009.03\qt)

  5. Default Qt Version: Wskazujesz nazwę, jaką wybrałeś w punkcie 4

Jeśli nadal nie działa:

  1. Mój komputer

  2. Prawy przycisk myszy->właściwości

  3. Zaawansowane->zmienne środowiskowe

  4. Zmienne użytkownika dla

  5. Nowa

  6. Nazwa zmiennej: Path

  7. Wartość zmiennej: katalogPlikuBinWQt;%PATH%

Domyślnie to będzie chyba C:\Qt\2009.03\qt\bin;%PATH%

Tak mniej więcej :slight_smile:


(Konithir) #12

Mam taką sytuacje i mi sie nie uruchamia.

sreenyqtcreator.bmp


([alex]) #13

Może to być problem związany z polskimi znakami w nazwie ścieżki.


(Oski225) #14

Hmm.. nie masz gdzieś przypadkiem nowszej wersji qt? Wersja 4.3.x nie jest już pierwszej świeżości :smiley:

Poza tym z tego co widze po screenach program uruchamiasz z wersji qt 4.3.4 a w opcjach programu wskazales 4.3.1


(Konithir) #15

Wcześniej ściągnąłem werse 1.2 teraz prosto ze strony producenta i wszystko działa!! Wielkie dzięki wam wszystkim [-o<

-- Dodane 23.09.2009 (Śr) 15:49 --

Przy takim kodzie(mój własny)

#include 

#include 

#include 


class MyWindow: public QMainWindow

{

public:

    MyWindow ();

    ~MyWindow ();

private:


};


int main(int argc, char *argv[])

{

    QApplication app (argc, argv);

    QTextCodec::setCodecForCStrings (QTextCodec::codecForName ("Windows-1250"));

    MyWindow window;

    window.show();

    return app.exec();

}

MyWindow::MyWindow(): QMainWindow ()

{

    setGeometry (400,300,300,200);

    setWindowTitle("Licznik");

}

Wyskakuje mi taki błąd:

error: collect2: ld returned 1 exit status

Przy przykładach z tej książki tej takie coś wyskakuje. O co chodzi???

-- Dodane 23.09.2009 (Śr) 20:34 --

Dobra był mały błąd.

Ostatni problem i można zamykać ten dział. Jak się robi żeby można było włączyć program. Bo gdy klikam na ikonke w folderze DEBUG wyskatuje takie coś:

bledzik.bmp


(Oski225) #16

Do folderu z programem trzeba skopiować potrzebne pliki. Przy małych projektach do folderu release skopiuj:

mingwm10.dll, QtCore4.dll, QtGui4.dll


(Konithir) #17

Ale ja tu nie mam takich plików.


(Oski225) #18

Te pliki są dostępne w:

katalogZainstalowanegoQt/qt/bin