Hallo,
ein Klick auf einen Button soll den Aufruf einer beliebigen Funktion 'myFunction' zur folge haben. 'myFunction' ist eine globale Funktion.
Muss ich nun um die Connection zwischen dem Button->Klick und der Funktion zu erstellen die Funktion als Slot deklarieren oder geht das auch anders?
Falls es eine andere Möglichkeit gibt, wie könnte dann die connect-Befehls-Zeile aussehen?
Vielen Dank,
Karl
Connect an eine beliebige Funktion
(geht auch anders, siehe dazu mein post 
Ps.: hmm... ich mach es meistens so, obs so richtig ist kann ich nicht
sagen, versuchen kann man alles
cpp
in der header datei
Ps.: hmm... ich mach es meistens so, obs so richtig ist kann ich nicht
sagen, versuchen kann man alles
cpp
Code: Alles auswählen
#include "tesklick.h"
TestKlick::TestKlick(QWidget* parent, const char* name, WFlags fl)
: frmTestKlick(parent,name,fl)
{}
TestKlick::~TestKlick()
{}
void TestKlick::slotKlick()
{
myFunc( ... );
}
Code: Alles auswählen
#ifndef TestKlick_H
#define TestKlick_H
class TestKlick : public frmTestKlick
{
Q_OBJECT
public:
TestKlick (QWidget* parent = 0, const char* name = "qdaocgr");
~TestKlick ();
myFunktion *myFunc( .... ) {
....
};
public slots:
void slotKlick();
};
#endif
Hi,
danke für den Hinweis.
Wenn ich die Sachen bei mir starten will kommen folgende Warnungen und Fehler:
newProject fatal error LNK1120: 6 unaufgelöste externe Verweise
newProject warning LNK4199: /DELAYLOAD:comdlg32.dll wird ignoriert; keine Importe von comdlg32.dll gefunden
newProject warning LNK4199: /DELAYLOAD:oleaut32.dll wird ignoriert; keine Importe von oleaut32.dll gefunden
newProject warning LNK4199: /DELAYLOAD:winmm.dll wird ignoriert; keine Importe von winmm.dll gefunden
newProject warning LNK4199: /DELAYLOAD:wsock32.dll wird ignoriert; keine Importe von wsock32.dll gefunden
newProject warning LNK4199: /DELAYLOAD:winspool.dll wird ignoriert; keine Importe von winspool.dll gefunden
newProject error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual bool __thiscall Yahoo::qt_property(int,int,class QVariant *)" (?qt_property@Yahoo@@UAE_NHHPAVQVariant@@@Z)
newProject error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual bool __thiscall Yahoo::qt_emit(int,struct QUObject *)" (?qt_emit@Yahoo@@UAE_NHPAUQUObject@@@Z)
newProject error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual bool __thiscall Yahoo::qt_invoke(int,struct QUObject *)" (?qt_invoke@Yahoo@@UAE_NHPAUQUObject@@@Z)
newProject error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual void * __thiscall Yahoo::qt_cast(char const *)" (?qt_cast@Yahoo@@UAEPAXPBD@Z)
newProject error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual char const * __thiscall Yahoo::className(void)const " (?className@Yahoo@@UBEPBDXZ)
newProject error LNK2019: Nicht aufgelöstes externes Symbol '"public: static class QMetaObject * __cdecl Yahoo::staticMetaObject(void)" (?staticMetaObject@Yahoo@@SAPAVQMetaObject@@XZ)', verwiesen in Funktion '"public: virtual class QMetaObject * __thiscall Yahoo::metaObject(void)const " (?metaObject@Yahoo@@UBEPAVQMetaObject@@XZ)'
Diese Meldungen kommen, sobald 'Q_OBJECT' in der cpp eingetragen wird.
Muss ich in keiner der beiden Dateien irgendwelche Header einbinden?
Gruss,
Karl
danke für den Hinweis.
Wenn ich die Sachen bei mir starten will kommen folgende Warnungen und Fehler:
newProject fatal error LNK1120: 6 unaufgelöste externe Verweise
newProject warning LNK4199: /DELAYLOAD:comdlg32.dll wird ignoriert; keine Importe von comdlg32.dll gefunden
newProject warning LNK4199: /DELAYLOAD:oleaut32.dll wird ignoriert; keine Importe von oleaut32.dll gefunden
newProject warning LNK4199: /DELAYLOAD:winmm.dll wird ignoriert; keine Importe von winmm.dll gefunden
newProject warning LNK4199: /DELAYLOAD:wsock32.dll wird ignoriert; keine Importe von wsock32.dll gefunden
newProject warning LNK4199: /DELAYLOAD:winspool.dll wird ignoriert; keine Importe von winspool.dll gefunden
newProject error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual bool __thiscall Yahoo::qt_property(int,int,class QVariant *)" (?qt_property@Yahoo@@UAE_NHHPAVQVariant@@@Z)
newProject error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual bool __thiscall Yahoo::qt_emit(int,struct QUObject *)" (?qt_emit@Yahoo@@UAE_NHPAUQUObject@@@Z)
newProject error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual bool __thiscall Yahoo::qt_invoke(int,struct QUObject *)" (?qt_invoke@Yahoo@@UAE_NHPAUQUObject@@@Z)
newProject error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual void * __thiscall Yahoo::qt_cast(char const *)" (?qt_cast@Yahoo@@UAEPAXPBD@Z)
newProject error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual char const * __thiscall Yahoo::className(void)const " (?className@Yahoo@@UBEPBDXZ)
newProject error LNK2019: Nicht aufgelöstes externes Symbol '"public: static class QMetaObject * __cdecl Yahoo::staticMetaObject(void)" (?staticMetaObject@Yahoo@@SAPAVQMetaObject@@XZ)', verwiesen in Funktion '"public: virtual class QMetaObject * __thiscall Yahoo::metaObject(void)const " (?metaObject@Yahoo@@UBEPAVQMetaObject@@XZ)'
Diese Meldungen kommen, sobald 'Q_OBJECT' in der cpp eingetragen wird.
Muss ich in keiner der beiden Dateien irgendwelche Header einbinden?
Gruss,
Karl