Möglicherweise hilft das weiter (frech aus einem Qt-Forum kopiert)
Zitat:
setupUi calls connectSlotsByName. connectSlotsByName parses the moc_ file in order to connect slots and signals. The moc_ file contains a list of all the slots for the class. The parser iterates over the list of slot names looking for the following pattern: on_objectName_signal, where on_objectName_signal is the name of the slot, objectName is the object name and signal is the signal. For example, if you have a slot named, on_doneButton_clicked(), the parser looks for an object named doneButton, a signal named clicked and then connects the on_doneButton_clicked() slot to QButton’s signal clicked().
If you follow this naming convention, you do not need to call the connect() method, nor do you need to connect the signal via the Qt UI editor in VisualStudio. connectSlotsByName will automatically make the connection for you.
So, in order to get rid of the “No matching signal for…” warnings, we need to either follow this naming convention, or make sure none of our slot names begin with “on_”. If you have a slot, onDoneButton_clicked, for example, connectSlotsByName will no try to connect it with a signal, nor will emit an warning.
Zuletzt bearbeitet von antialias am 08:01:20 02.09.2010, insgesamt 1-mal bearbeitet
hab jetzt einbisschen das QT tut durchgelesen (http://doc.trolltech.com/4.1/examples.html#qt-tutorial) und versuche ein kleines Programm zu schreiben.
Das Programm hat ein: Button, LineEdit und TextEdit, und soll den Text von LineEidt nach TextEdit schreiben wenn man auf den Button klickt.
Ich verstehe noch nicht wie ich das mit dem connect verbinden soll. In WinForms (C++/CLI) ist das so das man da ein Event hat (z.B. Click-Event) und in der Event-Funktion kann man dann auf Objekte zugreifen, wie geht das in QT?
Ohne Englisch kannst du das Programmieren auch gleich sein lassen, alle interessanten Sachen, nach den Grundlagen, werden nur in Englisch vermittelt. Also entweder Englisch lernen oder ein Noob bleiben, du hast du Wahl.
Das Tutorial ist auf "Englisch". Ich weiß nur nicht wie man mit Hilfe eines Buttons und connect den Text von LienEdit nach TextEdit einfügt. Bisher sah ich nur wie man zwei Objekte mit connect verbindet!
Bisher sah ich nur wie man zwei Objekte mit connect verbindet!
Anders geht es doch auch hier nicht! Schreib dir einen SLOT, in dem du den Text des LineEdit im TextEdit einfügt, connecte das clicked()-SIGNAL des Buttons auf diesen SLOT und fertig.
Man startet in so einem Falle die Anwendung in einer Konsole (oder schaut, ob in der verwendeten IDE im Anwendungs-Ausgabe-Fenster etwas steht). Du bekommst garantiert eine Meldung dass mit dem connect etwas nicht geht. DENN: deiner Klasse fehlt das Q_OBJECT-Macro! Wenn du das einfügst, bekommst du einen weiteren Fehler wg. undefined references. Dann brauchst du nämlich noch den moc.
Tu dir einen Gefallen und arbeite erstmal das Tutorial ganz durch (nicht nur Teil 1), bevor du selber was rumbastelst. Dann weißt du genauer wegen wo, wann was und warum.
Ohne Englisch kannst du das Programmieren auch gleich sein lassen, alle interessanten Sachen, nach den Grundlagen, werden nur in Englisch vermittelt. Also entweder Englisch lernen oder ein Noob bleiben, du hast du Wahl.
Das ist erstens mal wieder eine sehr hilfreiche Antwort und zweitens muss ich dem auch gleich mal widersprechen: es gibt Programmiersprachen (z.B. C#) bei denen man auch gänzlich ohne Englischkenntnisse sehr weit kommt! In vielen Sprachen sind sehr gute Bücher verfügbar, bzw. wenn wir beim Beispiel .NET-Framework bleiben, auch eine ausgezeichnete (deutsche!) Dokumenatation!
Die Dokumentation für Qt ist meiner Meinung nach hervorragend, aber halt nunmal komplett in englischer Sprache verfasst. Wer keine Englischkenntnisse hat kommt mit Hilfe von kostenlosen Tutorials meist nicht weiter, da hilft letztendes wirklich nur ein gutes Buch!
Nächstes Thema anzeigen Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben. Sie können auf Beiträge in diesem Forum antworten. Sie können Ihre Beiträge in diesem Forum nicht bearbeiten. Sie können Ihre Beiträge in diesem Forum nicht löschen. Sie können an Umfragen in diesem Forum nicht mitmachen.
c++.de ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums
für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de
Werbekostenerstattung verdient werden kann.
Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info, www.c-sar.de, www.c-plusplus.net und www.baeckmann.de
enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt
(vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in
privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden.
Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere
übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.