QT4 mit dev-cpp

Verschiedenes zu Qt
Antworten
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

QT4 mit dev-cpp

Beitrag von c++coder »

hi,
nutzt jemand von euch QT4 mit dev-cpp?
warum brauch man eigentlich den moc compiler? ...für signales und slots...was ist das?

ich hab nun ein template erstellt für ein QT4 projekt, brauch dann nur auf Datei-Neues Projekt-GUI-QT4 dann wird ein default QT4 geladen...
nun wie kann ich aber mein selbstgemachtes makefile da dazu tun? makefile ist dafür das ich nicht per hand mocen muss!!

makefile:

Code: Alles auswählen

# Project: Projekt1 
# Makefile created by Dev-C++ 4.9.9.2 
  
CPP  = g++.exe 
CC   = gcc.exe 
MOC  = moc.exe 
WINDRES = windres.exe 
RES  = 
OBJ = moc_mainwindow.o mainwindow.o main.o $(RES) 
LINKOBJ  = main.o mainwindow.o $(RES) 
LIBS =  -L"lib" -L"C:/Qt4.0.0/lib" -L"C:/Programme/Dev-Cpp/wxWidgets-2.6.1-msw-static/lib" -mwindows Qt4.0.0/lib/libQt3Support4.a Qt4.0.0/lib/libQtAssistantClient.a Qt4.0.0/lib/libQtCore4.a Qt4.0.0/lib/libQtDesigner4.a Qt4.0.0/lib/libQtDesignerComponents4.a Qt4.0.0/lib/libQtGui4.a Qt4.0.0/lib/libqtmain.a Qt4.0.0/lib/libQtNetwork4.a Qt4.0.0/lib/libQtOpenGL4.a Qt4.0.0/lib/libQtSql4.a Qt4.0.0/lib/libQtXml4.a   
INCS =  -I"include" 
CXXINCS =  -I"lib/gcc/mingw32/3.4.2/include"  -I"include/c++/3.4.2/backward"  -I"include/c++/3.4.2/mingw32"  -I"include/c++/3.4.2"  -I"include"  -I"C:/Qt4.0.0/include"  -I"C:/Qt4.0.0/include/ActiveQt"  -I"C:/Qt4.0.0/include/Qt"  -I"C:/Qt4.0.0/include/Qt3Support"  -I"C:/Qt4.0.0/include/QtAssistant"  -I"C:/Qt4.0.0/include/QtCore"  -I"C:/Qt4.0.0/include/QtDesigner"  -I"C:/Qt4.0.0/include/QtGui"  -I"C:/Qt4.0.0/include/QtMotif"  -I"C:/Qt4.0.0/include/QtNetwork"  -I"C:/Qt4.0.0/include/QtNsPlugin"  -I"C:/Qt4.0.0/include/QtOpenGL"  -I"C:/Qt4.0.0/include/QtOpenGL"  -I"C:/Qt4.0.0/include/QtSql"  -I"C:/Qt4.0.0/include/QtXml"  -I"C:/Programme/Dev-Cpp/wxWidgets-2.6.1-msw-static/include"  -I"C:/Programme/Dev-Cpp/wxWidgets-2.6.1-msw-static/lib/wx/include/msw-ansi-release-static-2.6" 
BIN  = Projekt1.exe 
CXXFLAGS = $(CXXINCS)   
CFLAGS = $(INCS)   
RM = rm -f 
  
.PHONY: all all-before all-after clean clean-custom 
  
all: all-before Projekt1.exe all-after 
  
  
clean: clean-custom 
    ${RM} $(OBJ) $(BIN) 
  
$(BIN): $(OBJ) 
    $(CPP) $(LINKOBJ) -o "Projekt1.exe" $(LIBS) 
  
main.o: main.cpp 
    $(CPP) -c main.cpp -o main.o $(CXXFLAGS) 
  
mainwindow.o: mainwindow.cpp 
    $(CPP) -c mainwindow.cpp -o mainwindow.o $(CXXFLAGS) 
  
moc_mainwindow.o: moc_mainwindow.cpp mainwindow.h 
    $(CPP) -c moc_mainwindow.cpp -o moc_mainwindow.o $(CXXFLAGS) 
  
moc_mainwindow.cpp: mainwindow.cpp 
    $(MOC) mainwindow.h -o moc_mainwindow.cpp $(CXXFLAGS)
cu+thx
Hermes
Beiträge: 9
Registriert: 2. Juni 2005 16:54

Beitrag von Hermes »

Also da du Deine eigenen Makefiles schreibst scheinst du etwas advanced zu sein.

Signals und Slots sind eine wirklich gelungene Art und Weise, wie Objekte in Qt miteinander 'reden' und/oder aufeinander reagieren können.

Du solltest Dir diese Methode unbedingt anlernen, wenn du Qt auch nur ansatzweise ausnutzen willst.

Dieser Moc Compiler ist dafür da, das die einzelnen Objekte die Signale austauschen beim kompiliervorgang irgendwie (ich weiss nicht wie das genau funktioniert) den Zugriff aufeinander kriegen.
c++coder
Beiträge: 47
Registriert: 11. Juli 2005 00:20
Kontaktdaten:

moc

Beitrag von c++coder »

hi,
danke mal für die erklärung!

ruft ihr moc alle händisch auf oder schreib auch jemand eigene makefiles?
wohin soll man dann die moc datei includen, wie soll die moc include heissen: moc_dialog.cpp oder dialog.moc ???!

Code: Alles auswählen

#include <QtGui>

#include "dialog.h"
#include "wigglywidget.h"

Dialog::Dialog(QWidget *parent)
    : QDialog(parent)
{
    WigglyWidget *wigglyWidget = new WigglyWidget;
    QLineEdit *lineEdit = new QLineEdit;

    QVBoxLayout *layout = new QVBoxLayout;
    layout->addWidget(wigglyWidget);
    layout->addWidget(lineEdit);
    setLayout(layout);

    connect(lineEdit, SIGNAL(textChanged(QString)),
            wigglyWidget, SLOT(setText(QString)));

    lineEdit->setText(tr("Hello world!"));

    setWindowTitle(tr("Wiggly"));
    resize(360, 145);
}

#include "moc_dialog.cpp"
was macht hier dieses connect, das hängt ja mit dem signal und slots konzept zusammen....also wenn ich hier in eine edit box was rein schreibe ändert sich oben der test...?

also dann, danke
bye
jaegermeister
Beiträge: 70
Registriert: 11. August 2004 07:44
Wohnort: Bergen auf Rügen
Kontaktdaten:

Beitrag von jaegermeister »

Zum Signal/Slot http://doc.trolltech.com/4.0/signalsandslots.html
Makefiles erstellt qmake http://doc.trolltech.com/4.0/qmake-manual.html
und die moc datei werden mitgelinkt include brauchst du die nicht außer du arbeitest ohne Header Files

mfg jaegermeister
Wie könnten ja wenn wir wollten, aber wie wollen ja nicht.
kowi1134
Beiträge: 120
Registriert: 1. Mai 2005 17:48
Wohnort: Arnsberg

Beitrag von kowi1134 »

Sofern es noch aktuell ist:

Lade Dir die Dev-C++ ohne Compiler runter. Installiere QT4 mit MinGW und sage in den Projekt-Optionen von Dev-C++, dass Du eine bestimmte Makefile (Makefile.release) verwenden willst. Dazu musst Du nur einmal vorher selbst qmake aufgerufen haben, das ist alles.

Ciao
Antworten